home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / standards / posix / 1003.0 / all < prev    next >
Text File  |  1993-07-15  |  767KB  |  22,705 lines

  1.           IEEE P1003.0 Draft 14    - November 1991
  2.  
  3.  
  4.             Copyright (c) 1991 by the
  5.      Institute of Electrical and Electronics Engineers, Inc.
  6.                345 East 47th Street
  7.              New York, NY 10017, USA
  8.            All rights reserved as an unpublished work.
  9.  
  10.        This is an unapproved and unpublished IEEE Standards Draft,
  11.        subject to change.  The publication, distribution, or
  12.        copying of this draft, as well as all derivative    works based
  13.        on this draft, is expressly prohibited except as    set forth
  14.        below.
  15.  
  16.        Permission is hereby granted for    IEEE Standards Committee
  17.        participants to reproduce this document for purposes of IEEE
  18.        standardization activities only,    and subject to the
  19.        restrictions contained herein.
  20.  
  21.        Permission is hereby also granted for member bodies and
  22.        technical committees of ISO and IEC to reproduce    this
  23.        document    for purposes of    developing a national position,
  24.        subject to the restrictions contained herein.
  25.  
  26.        Permission is hereby also granted to the    preceding entities
  27.        to make limited copies of this document in an electronic
  28.        form only for the stated    activities.
  29.  
  30.        The following restrictions apply    to reproducing or
  31.        transmitting the    document in any    form:  1) all copies or
  32.        portions    thereof    must identify the document's IEEE project
  33.        number and draft    number,    and must be accompanied    by this
  34.        entire notice in    a prominent location; 2) no portion of this
  35.        document    may be redistributed in    any modified or    abridged
  36.        form without the    prior approval of the IEEE Standards
  37.        Department.
  38.  
  39.        Other entities seeking permission to reproduce this
  40.        document, or any    portion    thereof, for standardization or
  41.        other activities, must contact the IEEE Standards Department
  42.        for the appropriate license.
  43.  
  44.        Use of information contained in this unapproved draft is    at
  45.        your own    risk.
  46.  
  47.         IEEE Standards Department
  48.         Copyright and Permissions
  49.         445    Hoes Lane, P.O.    Box 1331
  50.         Piscataway,    NJ 08855-1331, USA
  51.         +1 (908) 562-3800
  52.         +1 (908) 562-1571 [FAX]
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.                                                           P1003.0 Draft 14
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.                              STANDARDS PROJECT
  81.  
  82.                             Draft Guide to the
  83.                       POSIX Open Systems Environment
  84.  
  85.  
  86.                                   Sponsor
  87.                  Technical Committee on Operating Systems
  88.                        and Application Environments
  89.                                   of the
  90.                            IEEE Computer Society
  91.  
  92.  
  93.  
  94.  Abstract:  IEEE Std 1003.0-199x  presents  an  overview  of  open  system
  95.  concepts  and  their  application.   Information  is  provided to persons
  96.  evaluating systems on the existence  of,  and  interrelationships  among,
  97.  application   software   standards,   with   the  objective  of  enabling
  98.  application portability and  system  interoperability.   A  framework  is
  99.  presented  that  identifies key information system interfaces involved in
  100.  application portability and system  interoperability  and  describes  the
  101.  services   offered  across  these  interfaces.   Standards  or  standards
  102.  activities associated with the services are identified where they  exist,
  103.  or  are  in  progress.   Gaps  are  identified  where  POSIX  Open System
  104.  Environment  (OSE)  requirements  are  not  being  addressed   currently.
  105.  Finally,  the OSE profile concept is discussed with examples from several
  106.  application domains.
  107.  
  108.  Keywords:  application portability, open system  environments,  profiles,
  109.  POSIX
  110.  
  111.  
  112.                                P1003.0 / D14
  113.                                November 1991
  114.  
  115.  
  116.                          Copyright (c) 1991 by the
  117.           Institute of Electrical and Electronics Engineers, Inc.
  118.                            345 East 47th Street
  119.                           New York, NY 10017, USA
  120.                            All rights reserved.
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  _T_h_i_s _i_s _a_n _u_n_a_p_p_r_o_v_e_d _I_E_E_E _S_t_a_n_d_a_r_d_s _D_r_a_f_t, _s_u_b_j_e_c_t _t_o _c_h_a_n_g_e. _P_e_r_m_i_s_s_i_o_n
  170.  _i_s _h_e_r_e_b_y _g_r_a_n_t_e_d _f_o_r _I_E_E_E _S_t_a_n_d_a_r_d_s _C_o_m_m_i_t_t_e_e _p_a_r_t_i_c_i_p_a_n_t_s _t_o _r_e_p_r_o_d_u_c_e
  171.  _t_h_i_s _d_o_c_u_m_e_n_t _f_o_r _p_u_r_p_o_s_e_s _o_f _I_E_E_E _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n _a_c_t_i_v_i_t_i_e_s. _P_e_r_m_i_s_s_i_o_n
  172.  _i_s _a_l_s_o _g_r_a_n_t_e_d _f_o_r _m_e_m_b_e_r _b_o_d_i_e_s _a_n_d _t_e_c_h_n_i_c_a_l _c_o_m_m_i_t_t_e_e_s _o_f _I_S_O _a_n_d _I_E_C
  173.  _t_o _r_e_p_r_o_d_u_c_e _t_h_i_s _d_o_c_u_m_e_n_t _f_o_r _p_u_r_p_o_s_e_s _o_f _d_e_v_e_l_o_p_i_n_g _a _n_a_t_i_o_n_a_l _p_o_s_i_t_i_o_n.
  174.      _O_t_h_e_r _e_n_t_i_t_i_e_s _s_e_e_k_i_n_g _p_e_r_m_i_s_s_i_o_n _t_o _r_e_p_r_o_d_u_c_e _t_h_i_s _d_o_c_u_m_e_n_t _f_o_r
  175.    _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n _o_r _o_t_h_e_r _a_c_t_i_v_i_t_i_e_s, _o_r _t_o _r_e_p_r_o_d_u_c_e _p_o_r_t_i_o_n_s _o_f _t_h_i_s
  176.      _d_o_c_u_m_e_n_t _f_o_r _t_h_e_s_e _o_r _o_t_h_e_r _u_s_e_s, _m_u_s_t _c_o_n_t_a_c_t _t_h_e _I_E_E_E _S_t_a_n_d_a_r_d_s
  177.  _D_e_p_a_r_t_m_e_n_t _f_o_r _t_h_e _a_p_p_r_o_p_r_i_a_t_e _l_i_c_e_n_s_e.  _U_s_e _o_f _i_n_f_o_r_m_a_t_i_o_n _c_o_n_t_a_i_n_e_d _i_n
  178.                 _t_h_i_s _u_n_a_p_p_r_o_v_e_d _d_r_a_f_t _i_s _a_t _y_o_u_r _o_w_n _r_i_s_k.
  179.  
  180.  IEEE Standards Department
  181.  Copyright and Permissions
  182.  445 Hoes Lane, P.O. Box 1331
  183.  Piscataway, NJ 08855-1331, USA
  184.  +1 (908) 562-3800
  185.  +1 (908) 562-1571 [FAX]
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  _N_o_v_e_m_b_e_r _1_9_9_1                                                    _S_H _X_X_X_X_X
  205.  
  206.  BEGIN_RATIONALE
  207.  
  208.  _E_d_i_t_o_r'_s _N_o_t_e_s
  209.  
  210.  This section will not appear in the  final  document.   It  is  used  for
  211.  editorial comments concerning this draft.
  212.  
  213.  Comments in italics are not intended to form part  of  the  final  guide;
  214.  they are editor's or coordinator comments for the benefit of reviewers.
  215.  
  216.  This draft uses small numbers in the right margin in lieu of change bars.  e
  217.  ``E''  denotes changes from Draft 13 to Draft 14.  I have removed all old  e
  218.  diff-marks from Drafts 3 through 13 to  facilitate  mock  ballot  review.  e
  219.  Purely  editorial changes such as grammar, spelling, cross references, or  e
  220.  removals of editorial notes are not diff-marked.   Unfortunately,  it  is  e
  221.  not  possible  to  accurately  diff-mark the figures.  Note that an empty  e
  222.  line with a diff mark denotes deleted text.  There are a large number  of  e
  223.  these  in  Draft 14.  My convention is that I remove these empty lines in  e
  224.  the next draft.                                                            e
  225.  
  226.  The references to standards and other  documents  are  still  awaiting  a  e
  227.  reasonably  stable  draft for a massive global update.  I expect this may  e
  228.  occur after the first round of official IEEE balloting.  The ISO and IEEE  e
  229.  style  is  to  fully  identify  such  documents  in  either the Normative  e
  230.  Reference clause or the Bibliography; each entry contains the full title,  e
  231.  the  year  of  approval,  and  the current status (draft, CD, DIS, etc.).  e
  232.  Elsewhere in the guide, a terse  reference  to  the  standard  number  is  e
  233.  followed by the item number in the reference list, such as:                e
  234.  
  235.  POSIX.1 {2}                                                                e
  236.  ISO/IEC 10646 {B33}                                                        e
  237.  
  238.  A few titles have been modified in Section 4 to adhere to the template     e
  239.  for the services clauses.  These mostly affect the Standards,              e
  240.  Specifications, and Gaps subclause and they are not diff-marked unless     e
  241.  some significant text change accompanies them.                             e
  242.  
  243.  To make draft handling in the meetings easier, each significant clause is
  244.  set up to print starting on a recto page.  This means that there is a
  245.  larger number of blank pages than in previous drafts (assuming that the
  246.  copy room handled the print master correctly).  Just doing our bit for
  247.  deforestation ...
  248.  
  249.                                          Hal Jespersen
  250.  
  251.  
  252.  
  253.  
  254.  
  255.               Copyright (c) 1991 IEEE.  All rights reserved.
  256.       This is an unapproved IEEE Standards Draft, subject to change.
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  _E_d_i_t_o_r_i_a_l _C_o_n_t_a_c_t_s
  271.  
  272.  Please send comments regarding the content and approach of this document to:
  273.  
  274.          Fritz Schulz
  275.          Open Software Foundation
  276.          620 Herndon Parkway - Suite 200
  277.          Herndon, VA  22070
  278.          +1 (703) 481-9851
  279.          FAX: +1 (703) 437-0680
  280.          E-Mail: fschulz@osf.ORG
  281.  
  282.  Please report typographical errors (and index suggestions) to:
  283.  
  284.          Hal Jespersen
  285.          POSIX Software Group
  286.          447 Lakeview Way
  287.          Redwood City, CA 94062
  288.          +1 (415) 364-3410
  289.          FAX: +1 (415) 364-4498
  290.          E-Mail: hlj@Posix.COM
  291.  
  292.  (Electronic mail is preferred.)
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.               Copyright (c) 1991 IEEE.  All rights reserved.
  322.       This is an unapproved IEEE Standards Draft, subject to change.
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  _O_n_l_i_n_e _A_c_c_e_s_s
  337.  
  338.  This draft is available in various electronic forms to assist the review
  339.  process.  Our thanks to Andrew Hume of AT&T Bell Laboratories for
  340.  providing online access facilities.  Note that this is a limited
  341.  experiment in providing online access; future drafts may be provided in
  342.  other forms, such as diskettes or a bulletin board arrangement, but the
  343.  instructions shown here are the only methods currently available.  Please
  344.  also observe the additional copyright restrictions that are described in
  345.  the online files.
  346.  
  347.  Assuming you have access to the Internet, the scenario is approximately
  348.  
  349.        ftp research.att.com # research's IP address is 192.20.225.2
  350.        <login as netlib; password is your email address>
  351.        cd posix/p1003.0/d14
  352.        get toc index
  353.        binary
  354.        get p11-20.Z
  355.  
  356.  The draft is available in several forms.  The table of contents can be
  357.  found in toc, pages containing a particular section are stored under the
  358.  section number, sets of pages are stored in files with names of the form
  359.  p_n-_m, and the entire draft is stored in all.  By default, files are
  360.  ASCII.  A .ps suffix indicates PostScript.  A .Z suffix indicates a
  361.  compress'_e_d file.  The file index contains a general description of the
  362.  files available.
  363.  
  364.  These files are also available via electronic mail by sending a message
  365.  like
  366.  
  367.        echo send 3.4 4.6 6.2 from posix/p1003.0/d14 |                       e
  368.                mail netlib@research.att.com                                 e
  369.  
  370.  If you use email, you should _n_o_t ask for the compressed version.  For a
  371.  more complete introduction to this form of _n_e_t_l_i_b, send the message
  372.  
  373.        send help
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.               Copyright (c) 1991 IEEE.  All rights reserved.
  388.       This is an unapproved IEEE Standards Draft, subject to change.
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  _P_O_S_I_X._0 _C_h_a_n_g_e _H_i_s_t_o_r_y
  403.  
  404.  This section is provided to track major changes between drafts.  Since it
  405.  was first added in Draft 10, earlier entries have been omitted.
  406.  
  407.     Draft 14       [November 1991] First mock ballot.                       e
  408.  
  409.                     - Software Development clause 4.11 moved to Annex E.    e
  410.  
  411.                     - _O_t_h_e_r _D_e_t_a_i_l_s _o_f _C_h_a_n_g_e_s _t_o _b_e _P_r_o_v_i_d_e_d               e
  412.  
  413.     Draft 13       [September 1991]
  414.  
  415.                     - _T_o _B_e _P_r_o_v_i_d_e_d
  416.  
  417.     Draft 12       [June 1991]
  418.  
  419.                     - Clause 4.9:  Separated OLTP model discussion into
  420.                       two parts:  the part consistent with the POSIX OSE
  421.                       Model; and the ``real world'' part dealing with
  422.                       System Integration Interfaces.
  423.  
  424.                     - Section 6:  Further clarified ``base standard'' and
  425.                       ``profile'' definitions.  Renamed profile ``types''.
  426.  
  427.                     - _A_d_d_i_t_i_o_n_a_l _T_o _B_e _P_r_o_v_i_d_e_d
  428.  
  429.     Draft 11       [March 1991]
  430.  
  431.                     - _T_o _B_e _P_r_o_v_i_d_e_d
  432.  
  433.                       _H_L_J:  _I _d_o_n'_t _d_o _t_h_i_s _a_u_t_o_m_a_t_i_c_a_l_l_y _b_e_c_a_u_s_e _I _d_o_n'_t
  434.                       _k_n_o_w _w_h_a_t _i_s_s_u_e_s _y_o_u _c_o_n_s_i_d_e_r _i_m_p_o_r_t_a_n_t.  _T_h_i_s [_v_e_r_y
  435.                       _b_r_i_e_f] _t_e_x_t _s_h_o_u_l_d _b_e _p_r_o_v_i_d_e_d _b_y _e_a_c_h _S_e_c_t_i_o_n
  436.                       _L_e_a_d_e_r _a_l_o_n_g _w_i_t_h _t_h_e _r_e_g_u_l_a_r _s_u_b_m_i_s_s_i_o_n_s.  _I_t _i_s
  437.                       _m_e_a_n_t _t_o _p_r_o_v_i_d_e _c_a_s_u_a_l _r_e_a_d_e_r_s _o_f _t_h_e _g_u_i_d_e (_s_u_c_h
  438.                       _a_s _i_n _W_G_1_5, _w_h_e_r_e _t_h_e_y _d_o_n'_t _g_e_t _e_v_e_r_y _d_r_a_f_t) _w_i_t_h _a
  439.                       _b_r_o_a_d _o_v_e_r_v_i_e_w _o_f _t_h_e _b_i_g _c_h_a_n_g_e_s.
  440.  
  441.     Draft 10       [December 1990]
  442.  
  443.                     - _T_o _B_e _P_r_o_v_i_d_e_d
  444.  
  445.  END_RATIONALE
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.               Copyright (c) 1991 IEEE.  All rights reserved.
  454.       This is an unapproved IEEE Standards Draft, subject to change.
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  IEEE Standards documents are developed within the Technical Committees of
  470.  the IEEE Societies and the Standards Coordinating Committees of the IEEE
  471.  Standards Board.  Members of the committees serve voluntarily and without
  472.  compensation.  They are not necessarily members of the Institute.  The
  473.  standards developed within IEEE represent a consensus of the broad
  474.  expertise on the subject within the Institute as well as those activities
  475.  outside of IEEE that have expressed an interest in participating in the
  476.  development of the standard.
  477.  
  478.  Use of an IEEE Standard is wholly voluntary.  The existence of an IEEE
  479.  Standard does not imply that there are no other ways to produce, test,
  480.  measure, purchase, market, or provide other goods and services related to
  481.  the scope of the IEEE Standard.  Furthermore, the viewpoint expressed at
  482.  the time a standard is approved and issued is subject to change brought
  483.  about through developments in the state of the art and comments received
  484.  from users of the standard.  Every IEEE Standard is subjected to review
  485.  at least every five years for revision or reaffirmation.  When a document
  486.  is more than five years old and has not been reaffirmed, it is reasonable
  487.  to conclude that its contents, although still of some value, do not
  488.  wholly reflect the present state of the art.  Users are cautioned to
  489.  check to determine that they have the latest edition of any IEEE
  490.  Standard.
  491.  
  492.  Comments for revision of IEEE Standards are welcome from any interested
  493.  party, regardless of membership affiliation with IEEE.  Suggestions for
  494.  changes in documents should be in the form of a proposed change of text,
  495.  together with appropriate supporting comments.
  496.  
  497.  Interpretations:  Occasionally questions may arise regarding the meaning
  498.  of portions of standards as they relate to specific applications.  When
  499.  the need for interpretations is brought to the attention of the IEEE, the
  500.  Institute will initiate action to prepare appropriate responses.  Since
  501.  IEEE Standards represent a consensus of all concerned interests, it is
  502.  important to ensure that any interpretation has also received the
  503.  concurrence of a balance of interests.  For this reason, the IEEE and the
  504.  members of its technical committees are not able to provide an instant
  505.  response to interpretation requests except in those cases where the
  506.  matter has previously received formal consideration.
  507.  
  508.  Comments on standards and requests for interpretations should be
  509.  addressed to:
  510.  
  511.        Secretary, IEEE Standards Board
  512.        445 Hoes Lane
  513.        P.O. Box 1331
  514.        Piscataway, NJ 08855-1331
  515.  
  516.  
  517.  
  518.  
  519.               Copyright (c) 1991 IEEE.  All rights reserved.
  520.       This is an unapproved IEEE Standards Draft, subject to change.
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.         ___________________________________________________________
  535.        | IEEE Standards documents are adopted by the Institute of |
  536.        | Electrical and Electronics Engineers without regard to   |
  537.        | whether their adoption may involve patents on articles,  |
  538.        | materials, or processes.  Such adoption does not assume  |
  539.        | any liability to any patent owner, nor does it assume any|
  540.        | obligation whatever to parties adopting the standards    |
  541.        | documents.                                               |
  542.        |___________________________________________________________|
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.               Copyright (c) 1991 IEEE.  All rights reserved.
  586.       This is an unapproved IEEE Standards Draft, subject to change.
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.                                  Contents
  603.  
  604.  
  605.                                                                       PAGE
  606.  Introduction.......................................................     v
  607.     Purpose.........................................................     v
  608.     The POSIX Open System Environment Reference Model...............    vi
  609.     Goals...........................................................   vii
  610.     Benefits........................................................  viii
  611.     Related Standards Activities....................................     x
  612.  
  613.  Section 1: General.................................................     1
  614.     1.1   Scope.....................................................     1
  615.     1.2   Normative References......................................     2
  616.     1.3   Conformance...............................................     3
  617.     1.4   Test Methods..............................................     3
  618.  
  619.  Section 2: Terminology and General Requirements....................     5
  620.     2.1   Conventions...............................................     5
  621.     2.2   Definitions...............................................     5
  622.           2.2.1  Terminology........................................     5
  623.           2.2.2  General Terms......................................     7
  624.           2.2.3  Abbreviations......................................    13
  625.  
  626.  Section 3: POSIX Open System Environment...........................    15
  627.     3.1   POSIX Open System Environment - General Requirements......    16
  628.     3.2   POSIX Open System Environment Reference Model.............    19
  629.     3.3   POSIX Open System Environment Services....................    28
  630.     3.4   POSIX Open System Environment Standards...................    29
  631.     3.5   POSIX Open System Environment Profiles....................    32
  632.     3.6   Application Platform Implementation Considerations........    33
  633.  
  634.  Section 4: POSIX Open System Environment Services..................    39
  635.     4.1   Language Services.........................................    43
  636.     4.2   System Services...........................................    53
  637.     4.3   Network Services..........................................    73
  638.     4.4   Database Services.........................................    99
  639.     4.5   Data Interchange Services.................................   111
  640.     4.6   Transaction Processing Services...........................   119
  641.     4.7   Graphical Window System Services..........................   131
  642.     4.8   Graphics Services.........................................   149
  643.     4.9   Character-Based User Interface Services...................   171
  644.     4.10  User Command Interface Services...........................   177
  645.  
  646.  Section 5: POSIX OSE Cross-Category Services.......................   187
  647.     5.1   Internationalization......................................   189
  648.     5.2   System Security Services..................................   209
  649.  
  650.  
  651.               Copyright (c) 1991 IEEE.  All rights reserved.
  652.       This is an unapproved IEEE Standards Draft, subject to change.
  653.  
  654.  
  655.  
  656.  
  657.  ii
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.                                                                       PAGE
  667.     5.3   Information System Management.............................   215
  668.  
  669.  Section 6: Profiles................................................   227
  670.     6.1   Scope.....................................................   227
  671.     6.2   Profile Concepts..........................................   228
  672.     6.3   Guidance to Profile Writers...............................   230
  673.  
  674.  Section 7: POSIX SP Profiling Efforts..............................   237
  675.     7.1   Introduction..............................................   237
  676.     7.2   General Purpose POSIX SPs.................................   237
  677.  
  678.  Annex A (informative) Considerations for Developers of POSIX SPs...   249
  679.     A.1   Introduction..............................................   249
  680.     A.2   Scope.....................................................   249
  681.     A.3   The Role of POSIX SPs.....................................   250
  682.     A.4   Special Rules for POSIX SPs...............................   251
  683.     A.5   Other Issues..............................................   253
  684.     A.6   Conformance to a POSIX SP.................................   255
  685.     A.7   Structure of Documentation for POSIX SPs..................   255
  686.     A.8   Rules for Drafting and Presentation of POSIX SPs..........   257
  687.  
  688.  Annex B (informative) Bibliography.................................   262
  689.  
  690.  Annex C (informative) Standards Infrastructure Description.........   265
  691.     C.1   Introduction..............................................   265
  692.     C.2   The Formal Standards Groups...............................   267
  693.     C.3   Related Organizations.....................................   281
  694.  
  695.  Annex D (informative) Electronic-Mail..............................   295
  696.  
  697.  Annex E (informative) Additional Material..........................   297
  698.     E.1   Software Development Environments.........................   297
  699.  
  700.  Alphabetic Topical Index...........................................   307
  701.  
  702.  
  703.  FIGURES
  704.  
  705.  Figure 3-1  -  POSIX OSE Reference Model............................   20
  706.  Figure 3-2  -  POSIX OSE Reference Model - Entities.................   22
  707.  Figure 3-3  -  POSIX OSE Reference Model - Interfaces...............   24
  708.  Figure 3-4  -  POSIX OSE Reference Model - Distributed Systems......   28
  709.  Figure 3-5  -  Distributed System Environment Model.................   29
  710.  Figure 3-6  -  Service Components and Interfaces....................   33
  711.  Figure 3-7  -  Application Platform Implementation - Subdivision....   35
  712.  Figure 3-8  -  Application Platform Decomposition II - Layering.....   36
  713.  Figure 3-9  -  Application Platform Decomposition III -
  714.     Redirection......................................................   36
  715.  
  716.  
  717.               Copyright (c) 1991 IEEE.  All rights reserved.
  718.       This is an unapproved IEEE Standards Draft, subject to change.
  719.  
  720.  
  721.  
  722.  
  723.                                                                        iii
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  Figure 4-1  -  Language Service Reference Model.....................   44
  734.  Figure 4-2  -  System Services Reference Model......................   54
  735.  Figure 4-3  -  POSIX Networking Reference Model.....................   74
  736.  Figure 4-4  -  OSI Reference Model..................................   77
  737.  Figure 4-5  -  Relationship of OSI and POSIX OSE Network Reference
  738.     Models...........................................................   79
  739.  Figure 4-6  -  Multiple POSIX OSE APIs to Different OSI Layers......   80
  740.  Figure 4-7  -  POSIX Network Services Model.........................   81
  741.  Figure 4-8  -  Directory Services Architecture......................   83
  742.  Figure 4-9  -  OSI Network Services Standards.......................   94
  743.  Figure 4-10  -  The Traditional Database Model......................  100
  744.  Figure 4-11  -  POSIX Database Reference Model......................  101
  745.  Figure 4-12  -  Data Interchange Reference Model....................  112
  746.  Figure 4-13  -  The Conventional Transaction Processing Model.......  121
  747.  Figure 4-14  -  POSIX OSE Transaction Processing Reference Model....  123
  748.  Figure 4-15  -  Windowing Reference Model...........................  133
  749.  Figure 4-16  -  Computer Graphics Reference Model Level Structure...  153
  750.  Figure 4-17  -  POSIX OSE Graphics Service Reference Model..........  154
  751.  Figure 4-18  -  POSIX OSE Graphics Service Reference Model
  752.     Standards........................................................  160
  753.  Figure 4-19  -  Character-based Terminal Reference Model............  172
  754.  Figure 4-20  -  POSIX OSE Reference Model for Command Interfaces....  178
  755.  Figure A-1  -  Universe of Profiles and Standards...................  250
  756.  Figure C-1  -  Selected Major Standards and Standards-Influencing
  757.     Bodies...........................................................  267
  758.  Figure C-2  -  IEEE Standards Diagram...............................  277
  759.  Figure E-1  -  Software Development Model...........................  299
  760.  Figure E-2  -  Software Development Reference Model.................  300
  761.  
  762.  
  763.  TABLES
  764.  
  765.  Table 4-1  -  Language Standards....................................   49
  766.  Table 4-2  -  System Services Standards.............................   65
  767.  Table 4-3  -  Functionality of POSIX.1 Standard.....................   67
  768.  Table 4-4  -  Networking Standards..................................   92
  769.  Table 4-5  -  Database Standards....................................  107
  770.  Table 4-6  -  Data Interchange Standards............................  115
  771.  Table 4-7  -  Transaction Processing Standards......................  128
  772.  Table 4-8  -  Transaction Processing Standards Language Bindings....  128
  773.  Table 4-9  -  Windowing Standards...................................  145
  774.  Table 4-10  -  Graphics Standards...................................  161
  775.  Table 4-11  -  Graphics Standards Language Bindings.................  162
  776.  Table 4-12  -  Shell and Utilities Standards........................  183
  777.  Table 5-1  -  Internationalization Standards........................  201
  778.  Table 5-2  -  Security Standards....................................  213
  779.  Table 7-1  -  POSIX SPs In Progress.................................  238
  780.  Table E-1  -  Software Development Standards........................  302
  781.  
  782.  
  783.               Copyright (c) 1991 IEEE.  All rights reserved.
  784.       This is an unapproved IEEE Standards Draft, subject to change.
  785.  
  786.  
  787.  
  788.  
  789.  iv
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.                                Introduction
  802.  
  803.  
  804.  
  805.  (This Introduction is not a normative part of P1003.0 Guide to the POSIX
  806.  Open Systems Environment, but is included for information only.)
  807.  
  808.  
  809.  Purpose
  810.  
  811.  There are many standards efforts going on throughout the world today.
  812.  Standards are being developed in many areas of computing technology such
  813.  as:
  814.  
  815.      - Electrical Connectors
  816.  
  817.      - Disk Interfaces
  818.  
  819.      - Network Interfaces
  820.  
  821.      - Application Program Interfaces
  822.  
  823.  Each standards effort typically addresses a very small portion of the
  824.  overall needs of an information processing system.
  825.  
  826.  This guide brings together many different standards sufficient to address  e
  827.  the scope of an entire information processing system.  This combination
  828.  of standards and specifications that are sufficient to address all of the
  829.  user requirements of an information processing system is called an Open
  830.  System Environment.  This guide is not a base standard itself; it merely   e
  831.  identifies standards that can be used when constructing a complete         e
  832.  information processing system.  Although this guide is a product of the    e
  833.  IEEE POSIX standardization effort, its scope is much broader than the      e
  834.  IEEE POSIX standardization efforts.  IEEE POSIX is currently developing    e
  835.  base standards and standardized profiles focused primarily on application  e
  836.  programming interfaces.  At the end of the Introduction is a cross         e
  837.  reference of the POSIX standardization efforts and where they fit in the   e
  838.  POSIX Open System Environment.                                             e
  839.  
  840.  User requirements and standards to meet those requirements are
  841.  continuously expanding.  As such, this guide will need regular revision
  842.  to incorporate new user requirements and the new standards that evolve to
  843.  meet those user requirements.
  844.  
  845.  It may never be necessary to implement an information processing system
  846.  that provides every standard in the POSIX Open System Environment.
  847.  
  848.  
  849.               Copyright (c) 1991 IEEE.  All rights reserved.
  850.       This is an unapproved IEEE Standards Draft, subject to change.
  851.  
  852.  
  853.  
  854.  
  855.  Purpose                                                                 v
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  Typically, a subset of the POSIX Open System Environment is sufficient to  e
  865.  satisfy the particular user requirements in each situation.
  866.  
  867.  This process of selecting standards for a particular application is
  868.  called profiling.  Recommendations for the production of different types
  869.  of profiles are included in the guide.
  870.  
  871.  This guide is intended to be used by anyone interested in using standards  e
  872.  in an information processing system, including:  consumers, systems
  873.  integrators, application developers, systems providers, and procurement
  874.  agencies.
  875.  
  876.  Taken as a whole, the guide maps existing and emerging standards onto the
  877.  general requirements of a complete information processing system.  In
  878.  addition to listing and categorizing existing standards efforts, the
  879.  guide identifies important requirements that standards efforts have not
  880.  yet addressed.
  881.  
  882.  The POSIX Open System Environment Reference Model
  883.  
  884.  To describe the POSIX Open System Environment, the guide develops a
  885.  reference model used to classify information processing standards.  The
  886.  reference model divides standards into two general categories:             e
  887.  
  888.     Application Program Interface Standards
  889.  
  890.           These standards affect how application software interacts with
  891.           the computer system.  These standards affect application
  892.           portability.
  893.  
  894.     Platform External Interface Standards
  895.  
  896.           These standards affect how an information processing system
  897.           interacts with its external environment.  These standards affect
  898.           system interoperability, user interface look and feel, and data
  899.           portability.
  900.  
  901.  These standards are very important because they allow a user to
  902.  independently procure portions of their information processing systems
  903.  from multiple vendors according to each user's needs.
  904.  
  905.  In addition to these two interfaces identified in the model, there are     e
  906.  other important interface between different computer system components:    e
  907.  System Internal Interfaces.  These interfaces have no direct impact on     e
  908.  the external interface of a system or the application program interface    e
  909.  to the system.  System Internal Interfaces are beyond the direct scope of  e
  910.  this guide because they do not directly impact application portability or  e
  911.  system interoperability.                                                   e
  912.  
  913.  
  914.  
  915.               Copyright (c) 1991 IEEE.  All rights reserved.
  916.       This is an unapproved IEEE Standards Draft, subject to change.
  917.  
  918.  
  919.  
  920.  
  921.  vi                                                           Introduction
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  The services provided by the application platform are classified into      e
  931.  four major categories:                                                     e
  932.  
  933.      - System services                                                      e
  934.  
  935.      - Communications services                                              e
  936.  
  937.      - Information services                                                 e
  938.  
  939.      - Human-computer interaction services                                  e
  940.  
  941.  Within these categories, services component areas are identified.          e
  942.  
  943.  Using the reference model, a general set of requirements for each
  944.  component area is developed.  For each of the requirements existing or
  945.  emerging standards are identified that address the requirement.  If a
  946.  requirement is not completely met by an existing or emerging standard,
  947.  this gap in the standards is noted.
  948.  
  949.  Goals
  950.  
  951.  There are three goals of the POSIX OSE:  portability, interoperability,
  952.  and user portability.  (While these terms are formally defined later in
  953.  this guide and within various referenced standards, the following
  954.  descriptions provide an overview of their meaning.)
  955.  
  956.     Portability
  957.  
  958.           Source Code Portability is accomplished through the use of the    e
  959.           respective system/application interface standards and their
  960.           extensions, thus allowing a user's application to operate on a
  961.           wide range of systems.  It is important to note that the
  962.           aforementioned phrase ``wide range of systems'' connotes diverse
  963.           hardware as well as software platforms.
  964.  
  965.                                                                             e
  966.  
  967.     Interoperability
  968.  
  969.           Interoperability is characterized by the cooperative operation
  970.           of applications resident on dissimilar computer systems.  This
  971.           cooperative operation is illustrated by data and functionality
  972.           exchange.
  973.  
  974.     User Portability
  975.  
  976.           A consistent user interface allows users to move from system to   e
  977.           system and between different applications on the same system
  978.           with a minimum of retraining.
  979.  
  980.  
  981.               Copyright (c) 1991 IEEE.  All rights reserved.
  982.       This is an unapproved IEEE Standards Draft, subject to change.
  983.  
  984.  
  985.  
  986.  
  987.  Goals                                                                 vii
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  Benefits
  997.  
  998.  The benefits derived in the use of the POSIX Open System Environment are
  999.  real and quantifiable.
  1000.  
  1001.     Simplified Vendor Mixing System Integration
  1002.  
  1003.           As the standards for system integration and system
  1004.           interoperability are produced and implemented, the users will
  1005.           have the choice of mixing software and equipment from multiple
  1006.           vendors.  This will allow users to tailor their information
  1007.           processing system to their particular needs by selecting their
  1008.           hardware based on the application needs rather than its ability
  1009.           to interoperate with their existing equipment.
  1010.  
  1011.     Efficient Development and Implementation
  1012.  
  1013.           Normally, systems users and providers have development and
  1014.           implementation activities that utilize personnel possessing
  1015.           skills in a specific computer environment.  As a result of this
  1016.           specialization, a change in the target computer environment for
  1017.           a developer requires significant retraining expense.  As
  1018.           standards for application portability, system interoperability,
  1019.           and system integration are developed, computer personnel will
  1020.           begin to develop skills in working with these standards.  When
  1021.           these standards are widely used there will be large pool of
  1022.           personnel who are familiar with working with the standards.
  1023.  
  1024.           This will allow a company to hire personnel with existing skills
  1025.           that can be put to use in their operation.  In addition, within
  1026.           a company, resources can be redeployed between development
  1027.           efforts with a minimum of retraining.
  1028.  
  1029.           As the basic interfaces are developed and well defined, higher
  1030.           level standardized interfaces can be developed that add value to
  1031.           the basic interfaces.  Using the higher level interfaces may
  1032.           speed development efforts.
  1033.  
  1034.     Efficient Porting of Applications
  1035.  
  1036.           The difficulty of moving an application from one
  1037.           hardware/software environment to another is widely known.  The
  1038.           porting of an application that uses standards-based interfaces
  1039.           to another system that provides the same standards-based
  1040.           interfaces is considerably simpler than ports involving
  1041.           completely different systems.  The amount of system tailoring
  1042.           (i.e., changes to either the operating or application system
  1043.           required to make them work well together) is greatly reduced.
  1044.  
  1045.  
  1046.  
  1047.               Copyright (c) 1991 IEEE.  All rights reserved.
  1048.       This is an unapproved IEEE Standards Draft, subject to change.
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  viii                                                         Introduction
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.           It is important to note that while standards-based systems        e
  1063.           enable applications to be ported between different systems, the   e
  1064.           standards do not guarantee that an application will be portable.  e
  1065.           Applications still must be properly engineered to ensure          e
  1066.           application portability.                                          e
  1067.  
  1068.     Broadened Basis for Computer System Procurement Decisions
  1069.  
  1070.           Computer users can now select and match hardware and software
  1071.           components from potentially different suppliers to fulfill an
  1072.           application requirement.  This in turn allows decisions
  1073.           regarding computer systems procurements to be based less upon
  1074.           constraints imposed by incumbent vendors' products.  The basis
  1075.           for competition will refocus on such factors as price, quality,
  1076.           value-added features, performance, and support.  The stimulation
  1077.           of competition will benefit providers and users.
  1078.  
  1079.                                                                             e
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.               Copyright (c) 1991 IEEE.  All rights reserved.
  1114.       This is an unapproved IEEE Standards Draft, subject to change.
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  Benefits                                                               ix
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  Related Standards Activities
  1129.  
  1130.  The Standards Subcommittee of the IEEE Technical Committee on Operating
  1131.  Systems and Application Environments has authorized other standards
  1132.  activities that are related to the content of this guide.
  1133.  
  1134.  The following table summarizes the current POSIX standardization           e
  1135.  efforts1) and how they fit into this guide:                                e
  1136.  
  1137.       Project                 Standard/Profile                Clause        e
  1138.       ________   __________________________________________   ______        e
  1139.       P1003.1    System Interfaces                             4.2          e
  1140.       P1003.2    Shell and Utilities                           4.9          e
  1141.       P1003.3    Test Methods                                               e
  1142.       P1003.4    Realtime                                      4.2          e
  1143.       P1003.5    Ada Bindings                                  4.2          e
  1144.       P1003.6    Security                                      5.2          e
  1145.       P1003.7    System Administration                         5.3          e
  1146.       P1003.8    Transparent File Access                       4.3          e
  1147.       P1003.9    Fortran Bindings                              4.2          e
  1148.       P1003.10   Supercomputing Profile                        7.2          e
  1149.       P1003.11   Transaction Processing Profile                7.2          e
  1150.       P1003.12   Protocol-Independent Network Specification    4.3          e
  1151.       P1003.13   Realtime Profile                              7.2          e
  1152.       P1003.14   Multiprocessing Profile                       7.2          e
  1153.       P1003.15   Batch System                                  4.9          e
  1154.       P1003.16   C-Language Bindings                           4.2          e
  1155.       P1003.17   Directory/Name Services                       4.3          e
  1156.       P1003.18   POSIX Platform Profile                        7.2          e
  1157.       P1201.1    Human-Computer Interfaces                     4.6          e
  1158.       P1201.2    User Interface Drivability                    4.6          e
  1159.       P1224      X.400 API                                     4.3          e
  1160.       P1237      RPC                                           4.3          e
  1161.       P1238.0    FTAM API                                      4.3          e
  1162.       P1238.1    OSI Networking API                            4.3          e
  1163.  
  1164.  Most of these efforts are in the areas of API standards and standardized   e
  1165.  profiles.                                                                  e
  1166.  
  1167.  
  1168.  
  1169.  __________
  1170.   1) A _S_t_a_n_d_a_r_d_s _S_t_a_t_u_s _R_e_p_o_r_t that lists all current IEEE Computer
  1171.      Society standards projects is available from the IEEE Computer
  1172.      Society, 1730 Massachusetts Avenue NW, Washington, DC 20036-1903;
  1173.      Telephone: +1 202 371-0101; FAX: +1 202 728-9614.  Working drafts of
  1174.      POSIX standards under development are also available from this
  1175.      office.
  1176.  
  1177.  
  1178.  
  1179.               Copyright (c) 1991 IEEE.  All rights reserved.
  1180.       This is an unapproved IEEE Standards Draft, subject to change.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  x                                                            Introduction
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  Extensions are approved as ``amendments'' or ``revisions'' to this
  1195.  document, following the IEEE and ISO/IEC Procedures.
  1196.  
  1197.  Approved amendments are published separately until the full document is
  1198.  reprinted and such amendments are incorporated in their proper positions.
  1199.  
  1200.  If you have interest in participating in the TCOS working groups
  1201.  addressing these issues, please send your name, address, and phone number
  1202.  to the Secretary, IEEE Standards Board, Institute of Electrical and
  1203.  Electronics Engineers, Inc., P.O. Box 1331, 445 Hoes Lane, Piscataway, NJ
  1204.  08855-1331, and ask to have this forwarded to the chairperson of the
  1205.  appropriate TCOS working group.  If you have interest in participating in
  1206.  this work at the international level, contact your ISO/IEC national body.
  1207.  
  1208.  P1003.0 was prepared by the 1003.0 working group, sponsored by the
  1209.  Technical Committee on Operating Systems and Application Environments of
  1210.  the IEEE Computer Society.  At the time this standard was approved, the
  1211.  membership of the 1003.0 working group was as follows:
  1212.  
  1213.                  Technical Committee on Operating Systems
  1214.                     and Application Environments (TCOS)
  1215.  
  1216.                        Chair:   Jehan-Franc,ois Pa^ris
  1217.  
  1218.                         TCOS Standards Subcommittee
  1219.  
  1220.                        Chair:         Jim Isaak
  1221.                        Vice Chairs:   Ralph Barker
  1222.                                       Robert Bismuth
  1223.                                       Hal Jespersen
  1224.                                       Lorraine Kevra
  1225.                                       Pete Meier
  1226.                        Treasurer:     Quin Hahn
  1227.                        Secretary:     Shane McCarron
  1228.  
  1229.                       1003.0 Working Group Officials
  1230.  
  1231.        Chair:              Allen Hankinson
  1232.        Vice Chair:         Kevin Lewis
  1233.        Document Editor:    Hal Jespersen (sponsored by Mike Lambert)
  1234.        Technical Editor:   Fritz Schulz
  1235.        Secretary:          Charles Severance
  1236.  
  1237.                                Working Group
  1238.  
  1239.  <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>     <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>     <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.               Copyright (c) 1991 IEEE.  All rights reserved.
  1246.       This is an unapproved IEEE Standards Draft, subject to change.
  1247.  
  1248.  
  1249.  
  1250.  
  1251.                                                                         xi
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  The following persons were members of the 1003.0 Balloting Group that
  1261.  approved the standard for submission to the IEEE Standards Board:
  1262.  
  1263.             <_N_a_m_e>   <_I_n_s_t_i_t_u_t_i_o_n> _I_n_s_t_i_t_u_t_i_o_n_a_l _R_e_p_r_e_s_e_n_t_a_t_i_v_e
  1264.  
  1265.  <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>     <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>     <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>
  1266.  
  1267.  When the IEEE Standards Board approved this standard on <_d_a_t_e _t_o _b_e
  1268.  _p_r_o_v_i_d_e_d>, it had the following membership:
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.                                    (to be pasted in by IEEE)
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.               Copyright (c) 1991 IEEE.  All rights reserved.
  1312.       This is an unapproved IEEE Standards Draft, subject to change.
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  xii                                                          Introduction
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.                                                                P1003.0/D14
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  Guide to the POSIX Open Systems Environment
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.                             Section 1: General
  1347.  
  1348.  
  1349.  
  1350.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _K_e_v_i_n _L_e_w_i_s
  1351.  
  1352.  
  1353.  
  1354.  1.1  Scope
  1355.  
  1356.  This guide identifies parameters for an open system environment using the
  1357.  POSIX operating system/application interface as the platform.  These
  1358.  parameters are determined in three basic ways:
  1359.  
  1360.      (1)  By specifying building blocks identified as components
  1361.  
  1362.           Currently these components are:  system services, networking,
  1363.           human/computer interaction (HCI), graphics, system security and
  1364.           privacy, database, data interchange, and language requirements.
  1365.           This guide identifies the standards required within each
  1366.           component to achieve the goals of a POSIX open system.
  1367.  
  1368.      (2)  By identifying intra- and intercomponent issues
  1369.  
  1370.           These issues involve the relationships that should exist between
  1371.           and among the different components.  It is in the attempt to lay
  1372.           out and address these relationships that the concept of profiles
  1373.           (see 2.2.2 and Section 6) arises.
  1374.  
  1375.  
  1376.  
  1377.               Copyright (c) 1991 IEEE.  All rights reserved.
  1378.       This is an unapproved IEEE Standards Draft, subject to change.
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  1.1 Scope                                                               1
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  1391.  
  1392.      (3)  By identifying voids
  1393.  
  1394.           A void is determined by the absence, or lack of maturity, of
  1395.           formal standards development efforts.  Voids may exist within
  1396.           available standards or may be an entire component.  This guide
  1397.           provides assistance to those users who have already constructed,
  1398.           or plan to construct, profiles and to those users who currently
  1399.           use, or plan to use, profiles.  The profile concept allows users
  1400.           to identify those standards that address their specific needs.
  1401.           The profile also serves to identify the need for future
  1402.           standards development in a specific area.  This guide explains
  1403.           the manner in which these standards relate to each other.
  1404.  
  1405.  
  1406.  
  1407.  1.2  Normative References
  1408.  
  1409.  _N_o_t_e _t_o _r_e_v_i_e_w_e_r_s:  _T_h_i_s _c_l_a_u_s_e _i_s _n_o_t _c_o_m_p_l_e_t_e.  _A _l_i_s_t _o_f _r_e_f_e_r_e_n_c_e_d     _e
  1410.  _s_t_a_n_d_a_r_d_s _a_n_d _o_t_h_e_r _p_u_b_l_i_c_a_t_i_o_n_s _n_e_e_d_s _t_o _b_e _p_r_o_v_i_d_e_d, _c_o_n_t_r_a_s_t_e_d _a_g_a_i_n_s_t  _e
  1411.  _t_h_e _l_i_s_t _o_f _i_n_t_e_r_e_s_t_i_n_g _b_a_c_k_g_r_o_u_n_d _d_o_c_u_m_e_n_t_s _t_h_a_t _s_h_o_u_l_d _g_o _i_n_t_o _t_h_e       _e
  1412.  _b_i_b_l_i_o_g_r_a_p_h_y, _i_n_c_l_u_d_e_d _a_s _A_n_n_e_x _B.  _I_t _c_u_r_r_e_n_t_l_y _c_o_n_s_i_s_t_s _o_n_l_y _o_f _s_a_m_p_l_e   _e
  1413.  _e_n_t_r_i_e_s.  _I_t _w_i_l_l _b_e _r_e_p_l_a_c_e_d _i_n _a _l_a_t_e_r _d_r_a_f_t.                            _e
  1414.  
  1415.  The following standards contain provisions which, through references in
  1416.  this text, constitute provisions of this guide.  At the time of
  1417.  publication, the editions indicated were valid.  All standards are
  1418.  subject to revision, and parties to agreements based on this part of this
  1419.  International Standard are encouraged to investigate the possibility of
  1420.  applying the most recent editions of the standards listed below.  Members
  1421.  of IEC and ISO maintain registers of currently valid International
  1422.  Standards.
  1423.  
  1424.  {1}   ISO 8859-1: 1987, _I_n_f_o_r_m_a_t_i_o_n _p_r_o_c_e_s_s_i_n_g--_8-_b_i_t _s_i_n_g_l_e-_b_y_t_e _c_o_d_e_d
  1425.        _g_r_a_p_h_i_c _c_h_a_r_a_c_t_e_r _s_e_t_s--_P_a_r_t _1: _L_a_t_i_n _a_l_p_h_a_b_e_t _N_o. _1.1)
  1426.  
  1427.  {2}   ISO/IEC 9945-1: 1990, _I_n_f_o_r_m_a_t_i_o_n _t_e_c_h_n_o_l_o_g_y--_P_o_r_t_a_b_l_e _o_p_e_r_a_t_i_n_g
  1428.        _s_y_s_t_e_m _i_n_t_e_r_f_a_c_e (_P_O_S_I_X)--_P_a_r_t _1:  _S_y_s_t_e_m _a_p_p_l_i_c_a_t_i_o_n _p_r_o_g_r_a_m_m_i_n_g
  1429.        _i_n_t_e_r_f_a_c_e (_A_P_I) [_C _L_a_n_g_u_a_g_e]
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  __________
  1438.   1) ISO documents can be obtained from the ISO office, 1, rue de Varembe',
  1439.      Case Postale 56, CH-1211, Gene`ve 20, Switzerland/Suisse.
  1440.  
  1441.  
  1442.  
  1443.               Copyright (c) 1991 IEEE.  All rights reserved.
  1444.       This is an unapproved IEEE Standards Draft, subject to change.
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  2                                                               1 General
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  1457.  
  1458.  1.3  Conformance
  1459.  
  1460.  Not applicable.
  1461.  
  1462.  
  1463.  
  1464.  1.4  Test Methods                                                          e
  1465.  
  1466.  Not applicable.                                                            e
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.               Copyright (c) 1991 IEEE.  All rights reserved.
  1510.       This is an unapproved IEEE Standards Draft, subject to change.
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  1.4 Test Methods                                                        3
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.                                                                P1003.0/D14
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.               Section 2: Terminology and General Requirements
  1598.  
  1599.  
  1600.  
  1601.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _J_o_h_n _W_i_l_l_i_a_m_s
  1602.  
  1603.  
  1604.  
  1605.  2.1  Conventions
  1606.  
  1607.  This guide uses the following typographic conventions:
  1608.  
  1609.      - The _i_t_a_l_i_c font is used for cross references to defined terms
  1610.        within 1.3, 2.2.1, and 2.2.2.
  1611.  
  1612.  In some cases tabular information is presented ``inline''; in others it
  1613.  is presented in a separately labeled Table.  This arrangement was
  1614.  employed purely for ease of typesetting and there is no normative
  1615.  difference between these two cases.
  1616.  
  1617.  The typographic conventions listed above are for ease of reading only.
  1618.  Editorial inconsistencies in the use of typography are unintentional and
  1619.  have no normative meaning in this guide.
  1620.  
  1621.  NOTEs provided as parts of labeled Tables and Figures are integral parts
  1622.  of this guide (normative).  Footnotes and NOTEs within the body of the
  1623.  text are for information only (nonnormative).
  1624.  
  1625.  
  1626.  
  1627.  2.2  Definitions
  1628.  
  1629.  
  1630.  2.2.1  Terminology
  1631.  
  1632.  For the purposes of this guide, the following definitions apply:
  1633.  
  1634.  2.2.1.1  implementation defined:  An indication that the implementation
  1635.  shall define and document the requirements for correct program constructs
  1636.  and correct data of a value or behavior.
  1637.  
  1638.  
  1639.  
  1640.  
  1641.               Copyright (c) 1991 IEEE.  All rights reserved.
  1642.       This is an unapproved IEEE Standards Draft, subject to change.
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  2.2 Definitions                                                         5
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  1655.  
  1656.  2.2.1.2  informative:  Providing or disclosing information; instructive.
  1657.  
  1658.  Used in standards to indicate a portion of the text that poses no
  1659.  requirements; the opposite of _n_o_r_m_a_t_i_v_e.
  1660.  
  1661.  2.2.1.3  may:  An indication of an optional feature.
  1662.  
  1663.  With respect to implementations, the word _m_a_y is to be interpreted as an
  1664.  optional feature that is not required in this guide, but can be provided.
  1665.  
  1666.  2.2.1.4  normative:  Of, pertaining to, or prescribing a norm or
  1667.  standard.
  1668.  
  1669.  Used in standards to indicate a portion of the text that poses
  1670.  requirements.
  1671.  
  1672.  2.2.1.5  should:  With respect to implementations, an indication of an
  1673.  implementation recommendation, but not a requirement.
  1674.  
  1675.  2.2.1.6  POSIX:  The term ``POSIX'' has been evolving recently into a
  1676.  generally positive term with, unfortunately, a number of different
  1677.  meanings.  This subclause attempts to define the word and some related
  1678.  terms.  The intent is to insure that the term POSIX is used in a useful
  1679.  and predictable manner in this document.
  1680.  
  1681.  As background, note that POSIX is sometimes used to denote the formal
  1682.  standard IEEE Std 1003.1-1990, sometimes to denote that standard plus
  1683.  related standards and drafts emerging from IEEE P1003.x working groups,
  1684.  and sometimes to denote the groups themselves.  In all those cases, it
  1685.  should be noted, POSIX is used as a noun.
  1686.  
  1687.  This document will use the term ``POSIX'' only as an adjective, and will
  1688.  use it only in well defined ways.  This subclause serves as a preview of
  1689.  the usages in this book of POSIX terms.  (These terms are defined,
  1690.  formally, or informally in subsequent clauses, and you will be referred
  1691.  to those clauses as appropriate.)
  1692.  
  1693.  The original POSIX standard will be referred to by its name, ISO 9945,
  1694.  and not by the term POSIX.
  1695.  
  1696.  The IEEE groups developing standards related to ISO 9945 are called, in
  1697.  this document, _P_O_S_I_X _w_o_r_k_i_n_g _g_r_o_u_p_s.  Examples are the IEEE working
  1698.  groups P1003.2, P1003.3, etc.  The groups' names will be abbreviated
  1699.  POSIX.2, POSIX.3, etc.
  1700.  
  1701.  The standards emerging out of the POSIX working groups will be referred
  1702.  to by their formal names (e.g., IEEE P1003.2 Draft 9) and are called
  1703.  either _P_O_S_I_X _B_a_s_e _S_t_a_n_d_a_r_d_s or _P_O_S_I_X _S_t_a_n_d_a_r_d_i_z_e_d _P_r_o_f_i_l_e_s (POSIX SPs).
  1704.  
  1705.  
  1706.  
  1707.               Copyright (c) 1991 IEEE.  All rights reserved.
  1708.       This is an unapproved IEEE Standards Draft, subject to change.
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  6                                  2 Terminology and General Requirements
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  1721.  
  1722.  2.2.2  General Terms
  1723.  
  1724.  For the purposes of this guide, the following definitions apply:
  1725.  
  1726.  2.2.2.1  application:  The use of capabilities (services/facilities)
  1727.  provided by an information system specific to the satisfaction of a set
  1728.  of user requirements.
  1729.  NOTE:  These capabilities include hardware, software, and data.
  1730.  
  1731.  2.2.2.2  application platform:  A set of resources that support the
  1732.  services on which an application or application software will run.
  1733.  
  1734.  The application platform provides services at its interfaces that, as
  1735.  much as possible, make the specific characteristics of the platform
  1736.  transparent to the application.
  1737.  
  1738.  2.2.2.3  application program interface (API):  The interface between the
  1739.  applications software and the applications platform, across which all
  1740.  services are provided.
  1741.  
  1742.  The application program interface is primarily in support of application
  1743.  portability, but system and application interoperability are also
  1744.  supported via the communications API.
  1745.  
  1746.  2.2.2.4  application software:  Software that is specific to an
  1747.  application and is composed of programs, data, and documentation.
  1748.  
  1749.  2.2.2.5  Application Environment Profile (AEP):  A profile, specifying a   e
  1750.  complete and coherent subset of the OSE, in which the standards, options,  e
  1751.  and parameters chosen are necessary to support a class of applications.
  1752.  
  1753.                                                                             e
  1754.  
  1755.  2.2.2.6  base standard:  A standard or specification that is recognized
  1756.  as appropriate for normative reference in a profile by the body adopting
  1757.  that profile.
  1758.  
  1759.  2.2.2.7  Communications Interface:  The boundary between application
  1760.  software and the external environment, such as other application
  1761.  software, external data transport facilities, and devices.
  1762.  
  1763.  The services provided are those whose protocol state, syntax, and format
  1764.  all must be standardized for interoperability.
  1765.  
  1766.                                                                             e
  1767.  
  1768.  2.2.2.8  External Environment Interface (EEI):  The interface between the
  1769.  application platform and the external environment across which
  1770.  information is exchanged.
  1771.  
  1772.  
  1773.               Copyright (c) 1991 IEEE.  All rights reserved.
  1774.       This is an unapproved IEEE Standards Draft, subject to change.
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  2.2 Definitions                                                         7
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  1787.  
  1788.  The External Environment Interface is defined primarily in support of
  1789.  system and application interoperability.
  1790.  
  1791.  The primary services present at the External Environment Interface
  1792.  comprise:
  1793.  
  1794.      - Human/Computer Interaction Services
  1795.  
  1796.      - Information Services
  1797.  
  1798.      - Communications Services
  1799.  
  1800.  2.2.2.9  external environment:  A set of external entities to the
  1801.  application platform in which information is exchanged.
  1802.  
  1803.  These devices include displays, disk drives, sensors, and effectors
  1804.  directly accessible within the system.
  1805.  
  1806.  2.2.2.10  hardware:  Physical equipment used in data processing as
  1807.  opposed to programs, procedures, rules, and associated documentation.
  1808.  
  1809.  2.2.2.11  Human/Computer Interface:  The boundary across which physical
  1810.  interaction between a human being and the application platform takes
  1811.  place.
  1812.  
  1813.  2.2.2.12  Information Interchange Interface:  The boundary across which
  1814.  external, persistent storage service is provided.
  1815.  
  1816.  Only the format is required to be specified for data portability and
  1817.  interoperability.
  1818.  
  1819.  2.2.2.13  interface:  The shared boundary between two functional units,
  1820.  defined by functional characteristics and other characteristics, as
  1821.  appropriate.
  1822.  
  1823.  2.2.2.14  internationalization:  The process of designing and developing
  1824.  a product with a set of features, functions, and options intended to
  1825.  facilitate the adaptation of the product to satisfy a variety of cultural
  1826.  environments.
  1827.  
  1828.  2.2.2.15  interoperability:  The ability of two or more systems to
  1829.  exchange information and to mutually use the information that has been
  1830.  exchanged.
  1831.  
  1832.  2.2.2.16  language-binding API:  The interface between applications and
  1833.  application platforms based on language-independent binding APIs and
  1834.  consistent with the paradigms used for a specific programming language.
  1835.  
  1836.  
  1837.  
  1838.  
  1839.               Copyright (c) 1991 IEEE.  All rights reserved.
  1840.       This is an unapproved IEEE Standards Draft, subject to change.
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  8                                  2 Terminology and General Requirements
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  1853.  
  1854.  2.2.2.17  language-independent service specification:  A specification
  1855.  that facilitates the management and development of consistent language-
  1856.  binding standards.
  1857.  
  1858.  2.2.2.18  locale:  A description of a cultural environment.
  1859.  
  1860.  2.2.2.19  localization:  The process of utilizing the
  1861.  internationalization features to create a version of the product for a
  1862.  specific culture.
  1863.  
  1864.  2.2.2.20  local adaptation:  The process of modifying a product that has
  1865.  hard-coded biases of one culture to the hard-coded biases of another
  1866.  culture.
  1867.  
  1868.  2.2.2.21  open specifications:  Public specifications that are maintained
  1869.  by an open, public consensus process to accommodate new technologies over
  1870.  time and that are consistent with international standards.
  1871.  
  1872.  2.2.2.22  Open System Application Program Interface:  A combination of
  1873.  standards-based interfaces specifying a complete interface between an
  1874.  application program and the underlying application platform.
  1875.  
  1876.  This is divided into the following parts:
  1877.  
  1878.      - Human/Computer Interaction Services API
  1879.  
  1880.      - Information Services API
  1881.  
  1882.      - Communications Services API
  1883.  
  1884.      - System Services API
  1885.  
  1886.  2.2.2.23  open system:  A system that implements sufficient open
  1887.  specifications for interfaces, services, and supporting formats to enable
  1888.  properly engineered applications software:
  1889.  
  1890.      - to be ported with minimal changes across a wide range of systems
  1891.  
  1892.      - to interoperate with other applications on local and remote systems
  1893.  
  1894.      - to interact with users in a style that facilitates user
  1895.        portability.
  1896.  
  1897.  2.2.2.24  Open System Environment (OSE):  The comprehensive set of
  1898.  interfaces, services, and supporting formats, plus user aspects for
  1899.  interoperability or for portability of applications, data, or people, as
  1900.  specified by information technology standards and profiles.
  1901.  
  1902.  
  1903.  
  1904.  
  1905.               Copyright (c) 1991 IEEE.  All rights reserved.
  1906.       This is an unapproved IEEE Standards Draft, subject to change.
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  2.2 Definitions                                                         9
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  1919.  
  1920.  2.2.2.25  performance:  A measure of a computer system or subsystem to
  1921.  perform its functions; for example, response time, throughput, number of
  1922.  transactions per second.
  1923.  
  1924.  2.2.2.26  performance evaluation:  The technical assessment of a system
  1925.  or system component to determine how effectively operating objectives
  1926.  have been achieved.
  1927.  
  1928.  2.2.2.27  performance requirement:  A requirement that specifies a
  1929.  performance characteristic that a system or system component must
  1930.  possess; for example, speed, accuracy, frequency.
  1931.  
  1932.  2.2.2.28  portability:  The ease with which software can be transferred
  1933.  from one information system to another.
  1934.  
  1935.  2.2.2.29  POSIX Open System Environment (POSIX OSE):  The Open System
  1936.  Environment in which the standards included are International, Regional,
  1937.  and National Information Technology Standards and profiles that are in
  1938.  accord with ISO/IEC 9945 (POSIX).
  1939.  
  1940.  This guide represents the POSIX OSE as it existed when the guide was
  1941.  approved.
  1942.  
  1943.  2.2.2.30  POSIX OSE Cross-Category Services:  A set of tools and/or
  1944.  features that has a direct effect on the operation of one or more
  1945.  component of the POSIX Open System Environment, but is not in and of
  1946.  itself a stand-alone component.
  1947.  
  1948.  2.2.2.31  POSIX Standardized Profile (POSIX SP):  A Standardized Profile
  1949.  that specifies the application of certain POSIX base standards in support
  1950.  of a class of applications and does not require any departure from the
  1951.  structure defined by the POSIX.0 Reference Model for POSIX systems.
  1952.  NOTE:  Which POSIX base standards form the basis of the POSIX SPs is
  1953.  still open.  Annex A discusses some of the issues involved.
  1954.  
  1955.  2.2.2.32  process:  An address space and single thread of control that
  1956.  executes within that address space, and its required system resources.
  1957.  
  1958.  A process is created by another process issuing the _f_o_r_k() function.  The
  1959.  process that issues _f_o_r_k() is known as the parent process, and the new
  1960.  process created by the _f_o_r_k() as the child process.
  1961.  
  1962.  2.2.2.33  profile:  A set of one or more base standards, and, where
  1963.  applicable, the identification of chosen classes, subsets, options, and
  1964.  parameters of those base standards, necessary for accomplishing a
  1965.  particular function.
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.               Copyright (c) 1991 IEEE.  All rights reserved.
  1972.       This is an unapproved IEEE Standards Draft, subject to change.
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  10                                 2 Terminology and General Requirements
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  1985.  
  1986.  2.2.2.34  programming language API:  The interface between applications
  1987.  and application platforms traditionally associated with programming
  1988.  language specifications, such as program control, math functions, string
  1989.  manipulation, etc.
  1990.  
  1991.  2.2.2.35  protocol (OSI):  A set of semantic and syntactic rules that
  1992.  determine the behavior of [OSI-] entities in the same layer in performing
  1993.  communication functions.
  1994.  
  1995.  2.2.2.36  redirection:  A system profile construction method of starting
  1996.  at a base platform and adding new services by allowing a service
  1997.  component to ask the base platform to redirect all requests for that type
  1998.  of service to the service component.
  1999.  
  2000.  2.2.2.37  public specifications:  Specifications that are available,       e
  2001.  without restriction, to anyone for implementation and distribution (i.e.,  e
  2002.  sale) of that implementation.                                              e
  2003.  
  2004.  2.2.2.38  reference model:  A simplified description or representation of
  2005.  something.
  2006.  
  2007.  2.2.2.39  scaleability:  The ease with which software can be transferred
  2008.  from one graduated series of application platforms to another.
  2009.  
  2010.                                                                             e
  2011.  
  2012.  2.2.2.40  security:  The protection of computer hardware and software
  2013.  from accidental or malicious access, use, modification, destruction, or
  2014.  disclosure.
  2015.  
  2016.  Tools for the maintenance of security are focused on availability,
  2017.  confidentiality, and integrity.
  2018.  
  2019.  2.2.2.41  service delivery latency:  The interval between (a) context
  2020.  switch from an application context to the operating system context, and
  2021.  (b) satisfaction of the service request.
  2022.  
  2023.  2.2.2.42  service request latency:  The interval between (a) context
  2024.  switch from an application context to the operating system context, and
  2025.  (b) the reverse context switch from the operating system context to the
  2026.  application context for a given service request.
  2027.  
  2028.  2.2.2.43  software:  The programs, procedures, rules, and any associated
  2029.  documentation pertaining to the operation of a data processing system.
  2030.  
  2031.  2.2.2.44  specification:  A document that prescribes, in a complete,
  2032.  precise, verifiable manner, the requirements, design, behavior, or
  2033.  characteristics of a system or system component.
  2034.  
  2035.  
  2036.  
  2037.               Copyright (c) 1991 IEEE.  All rights reserved.
  2038.       This is an unapproved IEEE Standards Draft, subject to change.
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  2.2 Definitions                                                        11
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  2051.  
  2052.  2.2.2.45  standardized profile:  A balloted, formal, harmonized document
  2053.  that specifies a profile.
  2054.  
  2055.  2.2.2.46  standards:  Documents, established by consensus and approved by
  2056.  a recognized body, that provide, for common and repeated use, rules,
  2057.  guidelines, or characteristics for activities or their results, aimed at
  2058.  the achievement of the optimum degree of order in a given context.
  2059.  
  2060.                                                                             e
  2061.  
  2062.  2.2.2.47  System Internal Interface (SII):  The interface between
  2063.  application platform service components within that platform; it may be
  2064.  standardized or nonstandard.
  2065.  
  2066.  2.2.2.48  system services:  Firmware and software that provide an
  2067.  aggregation of network element functions into a higher level function;
  2068.  provide an interface to the data contained in the system.
  2069.  
  2070.  2.2.2.49  System Services API:  An interface providing access to services
  2071.  associated with the application's internal resources.
  2072.  
  2073.  The System Services API has two parts:  Language Specifications and
  2074.  Processing Services API.
  2075.  
  2076.  2.2.2.50  system software:  Application-independent software that
  2077.  supports the running of application software.
  2078.  
  2079.  2.2.2.51  transaction:  A unit of work consisting of an arbitrary number
  2080.  of individual operations all of which will complete successfully (or be
  2081.  of no effect) on the intended resources.
  2082.  
  2083.  A transaction has well defined boundaries.  A transaction starts with a
  2084.  request from the application program and either completes successfully
  2085.  (commits) or has no effect (abort).  Both the commit and abort signify a
  2086.  transaction completion.
  2087.  
  2088.  2.2.2.52  transaction application program:  A program written to meet the
  2089.  requirements of a chosen Transaction Processing (TP) application.
  2090.  
  2091.  Such programs allow a sequence of operations that involve resources such
  2092.  as terminals and databases.  The transaction AP specifies transaction
  2093.  boundaries.  The transaction AP as defined here is a logical entity and
  2094.  may involve an arbitrary number of processes.
  2095.  
  2096.  2.2.2.53  validation:  The process of evaluating a ported application,
  2097.  software, or system to ensure compliance with requirements.
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.               Copyright (c) 1991 IEEE.  All rights reserved.
  2104.       This is an unapproved IEEE Standards Draft, subject to change.
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  12                                 2 Terminology and General Requirements
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  2117.  
  2118.  2.2.3  Abbreviations
  2119.  
  2120.  For the purposes of this guide, the following abbreviations apply:
  2121.  
  2122.  2.2.3.1  API:  Application Program Interface
  2123.  
  2124.  2.2.3.2  EEI:  External Environment Interface
  2125.  
  2126.  2.2.3.3  POSIX.0:  This guide.
  2127.  
  2128.  2.2.3.4  POSIX._nnnn:  An IEEE POSIX working group, where the number _n
  2129.  represents the decimal notation in the IEEE P1003 series.  Alternatively,
  2130.  when apparent from context, the latest standard issued, or under
  2131.  development, by that working group.
  2132.  
  2133.  2.2.3.5  SII:  System Internal Interface.
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.               Copyright (c) 1991 IEEE.  All rights reserved.
  2170.       This is an unapproved IEEE Standards Draft, subject to change.
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  2.2 Definitions                                                        13
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.                                                                P1003.0/D14
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.                  Section 3: POSIX Open System Environment
  2258.  
  2259.  
  2260.  
  2261.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _F_r_i_t_z _S_c_h_u_l_z
  2262.  
  2263.  The POSIX Open System Environment (OSE) is a collection of concepts that
  2264.  provide a context for user requirements and standards specification.  It
  2265.  provides a minimum, standard set of conceptual information system
  2266.  building blocks with associated interfaces and functionality.  The POSIX
  2267.  OSE consists of a reference model, service definitions, standards, and
  2268.  profiles.
  2269.  
  2270.  These OSE concepts are also intended to be conventional within computer
  2271.  science.  The intention is not to break new ground, but to establish a
  2272.  minimum and unambiguous terminology and set of concepts for
  2273.  identification and resolution of portability and interoperability issues.
  2274.  
  2275.  The POSIX Open System Environment is defined in five parts:
  2276.  
  2277.      (1)  General requirements are identified that apply to the POSIX OSE
  2278.           as a whole in 3.1.
  2279.  
  2280.      (2)  A reference model is developed that unambiguously identifies the
  2281.           system under consideration for purposes of specification.  The
  2282.           POSIX OSE reference model described in 3.2 defines system
  2283.           elements to identify interfaces across which service
  2284.           requirements should be satisfied.  The elements are chosen to
  2285.           expose those interfaces that are significant to the profile
  2286.           writer or user.
  2287.  
  2288.      (3)  Using the interfaces identified in the reference models, each
  2289.           subclause of Section 4 categorizes and describes the basic
  2290.           services available to users across each interface.  The services
  2291.           are defined in a generic way, based on the reference model, user
  2292.           requirements, and current industry practice, rather than any
  2293.           given implementation.
  2294.  
  2295.           Definition of the service requirements is not constrained by the
  2296.           availability of standards.  Service requirements that are not
  2297.           currently satisfied via standards are discussed in either the
  2298.           Emerging Standards subclause, or under Gaps.
  2299.  
  2300.  
  2301.               Copyright (c) 1991 IEEE.  All rights reserved.
  2302.       This is an unapproved IEEE Standards Draft, subject to change.
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  3 POSIX Open System Environment                                        15
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  2315.  
  2316.           Each clause of Section 4 begins with a more detailed and
  2317.           specialized version of the reference model to provide a context
  2318.           for service specification.  After defining the interfaces and
  2319.           services, each of the Section 4 clauses concludes with a
  2320.           discussion of standards that are related to the services.
  2321.  
  2322.      (4)  Section 5 discusses issues and requirements that directly affect
  2323.           all of the service categories, such as internationalization,
  2324.           security, and administration.
  2325.  
  2326.      (5)  Section 6 provides guidelines for creating profiles that address
  2327.           various application domains.  This is a brief description of how
  2328.           the reference model and services are applied to a variety of
  2329.           existing types of systems.  Section 7 describes current POSIX
  2330.           profiles and profiling activities.
  2331.  
  2332.                                                                             e
  2333.  
  2334.  Definition of the service requirements is not constrained by the
  2335.  availability of standards.  Services requirements that are not currently
  2336.  satisfied via standards are discussed in either the Emerging Standards
  2337.  subclause, or under Gaps.
  2338.  
  2339.  
  2340.  
  2341.  3.1  POSIX Open System Environment - General Requirements
  2342.  
  2343.  The POSIX Open System Environment should satisfy the requirements in the
  2344.  following list:
  2345.  
  2346.      (1)  Application Portability at the Source Code Level
  2347.  
  2348.           The POSIX OSE shall enable application software portability at
  2349.           the source code level.
  2350.  
  2351.           Rationale:  Comprehensive and consistent source code level
  2352.           service specifications allow porting of applications among
  2353.           processors (ideally without modification).  Binary portability
  2354.           requires too tight a coupling with the processor implementation.
  2355.  
  2356.      (2)  System Interoperability
  2357.  
  2358.           The POSIX OSE shall enable application software and system
  2359.           service interoperability.
  2360.  
  2361.           Rationale:  Communications services and format specifications
  2362.           allow two entities participating in a distributed system to
  2363.           exchange and make mutual use of data, including:
  2364.  
  2365.  
  2366.  
  2367.               Copyright (c) 1991 IEEE.  All rights reserved.
  2368.       This is an unapproved IEEE Standards Draft, subject to change.
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  16                                        3 POSIX Open System Environment
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  2381.  
  2382.            - Homogeneous systems
  2383.  
  2384.            - Heterogeneous systems (i.e., a wide variety of
  2385.              hardware/software platforms)
  2386.  
  2387.            - POSIX-OSE-based and non-OSE-based systems
  2388.  
  2389.      (3)  User Portability
  2390.  
  2391.           The POSIX OSE shall enable human users to operate on a wide
  2392.           range of systems without retraining.
  2393.  
  2394.           Rationale:  Standard methods and services for supporting
  2395.           human/computer interaction are a key aspect of the definition of
  2396.           an open system (see Section 2).  Elimination of gratuitous
  2397.           differences in the interface that the application platform
  2398.           presents to the user via standards is a significant aspect of
  2399.           this task.
  2400.  
  2401.      (4)  Accommodation of Standards
  2402.  
  2403.           The POSIX OSE shall accommodate existing, imminent, and new
  2404.           information technology standards.
  2405.  
  2406.           Rationale:  If the POSIX OSE were constrained to current
  2407.           technology, it would quickly become obsolete.  It would also not
  2408.           be capable of providing a complete set of applicable standards
  2409.           and profiles, as efforts to-date have not yet provided a full
  2410.           suite of applicable standards.  The POSIX OSE must evolve as
  2411.           standards emerge and technology changes.
  2412.  
  2413.           An inevitable tension exists between establishing fixed
  2414.           standards and providing for technology enhancement.  Therefore,
  2415.           the POSIX OSE must be sufficiently general to allow for
  2416.           technology growth and yet specific enough to act as a guide for
  2417.           standards development.
  2418.  
  2419.      (5)  Accommodation of New Information System Technology
  2420.  
  2421.           The POSIX OSE shall accommodate new Information System
  2422.           Technology.
  2423.  
  2424.           Rationale:  The POSIX OSE must strive to satisfy the full range
  2425.           of the users' functional requirements.  This is undoubtedly a
  2426.           requirement that will only be fully realized over time, but it
  2427.           reflects the goal of the POSIX OSE.
  2428.  
  2429.      (6)  Application Platform Scalability
  2430.  
  2431.  
  2432.  
  2433.               Copyright (c) 1991 IEEE.  All rights reserved.
  2434.       This is an unapproved IEEE Standards Draft, subject to change.
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  3.1 POSIX Open System Environment - General Requirements               17
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  2447.  
  2448.           The POSIX OSE shall be scalable to platforms of varying power
  2449.           and implementation complexity.
  2450.  
  2451.           Rationale:  This reflects the realities of the potential users
  2452.           of the POSIX OSE.  This requirement affects individual standards
  2453.           as well as the conditions under which various of the standards
  2454.           can or should be combined into profiles.
  2455.  
  2456.           For example, where similar services are provided by both
  2457.           workstation type application platforms and supercomputers, the
  2458.           same standards should be applied to each if possible.  This
  2459.           would enable a greater degree of portability across these
  2460.           specialized implementations of the application platform.
  2461.  
  2462.      (7)  Distributed System Scalability
  2463.  
  2464.           The POSIX OSE shall provide for distributed system scalability.
  2465.  
  2466.           Rationale:  The number of distributed system components
  2467.           connected should not be limited by any structural aspects of the
  2468.           POSIX OSE.
  2469.  
  2470.           For example, in the area of network services, the OSE standards
  2471.           should be such that it is possible to construct profiles (and
  2472.           therefore systems) in which remote and local operation and
  2473.           utilization of information system resources are
  2474.           indistinguishable, with the exception of unavoidable message
  2475.           transit delay.  In other words, it should be possible for
  2476.           applications to be unaware of whether the application platform
  2477.           on which they are executing is local or distributed and that
  2478.           lack of awareness should not affect their proper operation.
  2479.  
  2480.      (8)  Implementation Transparency
  2481.  
  2482.           The POSIX OSE shall provide implementation technology
  2483.           transparency.
  2484.  
  2485.           Rationale:  The mechanism for implementation of services is not
  2486.           visible to the service user; i.e., only the service is visible
  2487.           to the service user.
  2488.  
  2489.      (9)  User's Functional Requirements
  2490.  
  2491.           The POSIX OSE shall reflect the full scope of the user's
  2492.           functional requirements, within the context of the other
  2493.           requirements above.
  2494.  
  2495.           Rationale:  The POSIX OSE will provide the context within which
  2496.           application software portability can be addressed and it is the
  2497.  
  2498.  
  2499.               Copyright (c) 1991 IEEE.  All rights reserved.
  2500.       This is an unapproved IEEE Standards Draft, subject to change.
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  18                                        3 POSIX Open System Environment
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  2513.  
  2514.           set of user's functional requirements that defines the scope of
  2515.           transportable service needs.
  2516.  
  2517.  
  2518.  
  2519.  3.2  POSIX Open System Environment Reference Model
  2520.  
  2521.  The POSIX OSE is based on a reference model with the full information
  2522.  system as its scope.  As such, it spans the gap between requirement
  2523.  specification and the design of any specific information system.  The
  2524.  reference model provides a set of conventions and concepts, mutually
  2525.  agreed upon between the information system user and provider communities.
  2526.  This common understanding is key to achieving application software
  2527.  portability, system interoperability, and may encourage software reuse.
  2528.  It will certainly allow for more compact and correct procurement
  2529.  specifications.
  2530.  
  2531.  The definition of this reference model is an engineering and management
  2532.  task and not a scientific one.  There are many possible models and, while
  2533.  it might be interesting to contemplate an optimal one, a reference model
  2534.  that satisfies the requirements is all that is necessary.
  2535.  
  2536.  An information system reference model must satisfy conflicting
  2537.  requirements similar to those encountered in traditional architectural
  2538.  disciplines.  The reference model must be structured enough to encourage
  2539.  the generation and use of standards and standard components.  Yet it must
  2540.  also be flexible enough to accommodate tailored and special purpose
  2541.  components necessary to meet realworld needs.
  2542.  
  2543.  The POSIX OSE Reference Model is a set of concepts, interfaces, entities,
  2544.  and diagrams that provides a basis for specification of standards.  The
  2545.  POSIX OSE Reference Model will provide guidance and direction for future
  2546.  standardization and integration efforts.  In order for the POSIX OSE to
  2547.  evolve and mature, it will be necessary for the reference model to
  2548.  provide insights into those services and capabilities for which standards
  2549.  do not currently exist and for which appropriate standardization
  2550.  activities cannot be identified.
  2551.  
  2552.  The POSIX OSE Reference Model is described from the user perspective;
  2553.  i.e., the reference model records the application platform user's
  2554.  perception (mental model) of the overall large distributed system used to
  2555.  support the user enterprise.  This point of view will assure that the:
  2556.  
  2557.      - Information technology users will have the proper services to meet
  2558.        their requirements, and
  2559.  
  2560.      - Information technology vendor implementations will not be
  2561.        constrained unnecessarily.
  2562.  
  2563.  
  2564.  
  2565.               Copyright (c) 1991 IEEE.  All rights reserved.
  2566.       This is an unapproved IEEE Standards Draft, subject to change.
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  3.2 POSIX Open System Environment Reference Model                      19
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  2579.  
  2580.  _________________________________________________________________________
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  _________________________________________________________________________
  2607.                  Figure 3-1  -  POSIX OSE Reference Model
  2608.  
  2609.  
  2610.  Figure 3-1 depicts the basic elements of the POSIX Open System
  2611.  Environment Reference Model.  These include three entities (Application
  2612.  Software, Application Platform, and External Environment) and two
  2613.  interfaces between them, identified as the Application Program Interface
  2614.  (API) and the External Environment Interface (EEI).  The application
  2615.  platform provides API and EEI services across the associated interfaces.
  2616.  
  2617.  This model has been generalized to such a degree that it can accommodate
  2618.  a wide variety of general and special purpose systems.  More detailed
  2619.  requirements exist for each service category described in Section 4.  The
  2620.  service specification has been defined to be robust and flexible enough
  2621.  to allow subsets or extensions for each category as needed.  As a result,
  2622.  the POSIX OSE reference model is able to accommodate a variety of
  2623.  architectures and standardization approaches.  It should be possible to
  2624.  show where any relevant standard fits within the reference model.
  2625.  
  2626.  Standards (in the sense of formally adopted consensus specifications)
  2627.  address only interfaces between entities, as well as services and
  2628.  supporting formats offered across those interfaces.  The interface
  2629.  
  2630.  
  2631.               Copyright (c) 1991 IEEE.  All rights reserved.
  2632.       This is an unapproved IEEE Standards Draft, subject to change.
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  20                                        3 POSIX Open System Environment
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  2645.  
  2646.  specification defines a convention adopted to represent the function
  2647.  offered across the interface in both directions.  Note that no set of
  2648.  standards can, by itself, assure portability of specific applications.
  2649.  Applications must be properly engineered with an explicit portability
  2650.  objective in order to achieve it.
  2651.  
  2652.  The Reference Model is not a layered model.  The application platform
  2653.  provides services to a variety of users across both platform interfaces.
  2654.  A human being invokes the platform services at the External Environment
  2655.  Interface.  If an application developer is the application platform user,
  2656.  the services offered at the application program interface (API) are
  2657.  invoked at the source code level.
  2658.  
  2659.  All of these features may be available locally or remotely if the system
  2660.  is connected to a larger distributed system.  All other resources and
  2661.  objects can be conceptualized as being contained within the application
  2662.  platform.
  2663.  
  2664.  Note that the actual implementation of any given system element may
  2665.  differ greatly from the reference model presented.  The intention is to
  2666.  define a conceptual reference model that the widespread design,
  2667.  implementation, and integration communities may assume in executing their
  2668.  activities.  Partitioning of function for purposes of discussion or
  2669.  specification does not imply or endorse similar partitioning for design
  2670.  or implementation.
  2671.  
  2672.  
  2673.  3.2.1  Reference Model Entities and Elements
  2674.  
  2675.  Figure 3-2 expands Figure 3-1 to identify elements of the Reference Model
  2676.  entities.  For the purposes of this discussion, the term ``entities''
  2677.  will be used when discussing the classification of items (i.e.,
  2678.  ``things'') related to application portability.  The term ``component''
  2679.  will only be used when an entity is further decomposed into constituent
  2680.  parts.  The application software entity is the only entity that is
  2681.  decomposed into components.
  2682.  
  2683.  Application Software is defined (see 2.2.2.4) as software specific to an
  2684.  application.  It is composed of:
  2685.  
  2686.      - Programs (source code, command/script files, etc.)
  2687.  
  2688.      - Data (user data, application parameters, screen definitions, etc.),
  2689.        and
  2690.  
  2691.      - Documentation (online documentation only; hardcopy not included).
  2692.  
  2693.  An application program is represented by source code, produced according
  2694.  to a specific programming language and a set of language bindings (i.e.,
  2695.  
  2696.  
  2697.               Copyright (c) 1991 IEEE.  All rights reserved.
  2698.       This is an unapproved IEEE Standards Draft, subject to change.
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  3.2 POSIX Open System Environment Reference Model                      21
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  2711.  
  2712.  _________________________________________________________________________
  2713.  
  2714.  
  2715.  
  2716.  
  2717.  
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  _________________________________________________________________________
  2739.             Figure 3-2  -  POSIX OSE Reference Model - Entities
  2740.  
  2741.  
  2742.  API specifications) for the required services.  These specifications may
  2743.  be public standards or other open specifications.
  2744.  
  2745.  An application program may be divided into two parts:
  2746.  
  2747.      - An _i_n_v_a_r_i_a_n_t portion of source code, requiring no change when
  2748.        ported, and
  2749.  
  2750.      - A _v_a_r_i_a_n_t portion of source code, which requires changes when
  2751.        ported.
  2752.  
  2753.  The objective of any effective application software portability method
  2754.  should be to minimize the ``variant'' portion of the application software
  2755.  via creation and use of API standards.  This would ideally allow
  2756.  application software components to be moved to a different (but
  2757.  portability-standard compliant) system and run without source code
  2758.  modification.  However, since standards exist for which strictly
  2759.  conforming application software requires modification (e.g., memory
  2760.  requirements, processor-specific COBOL statements), this can only be
  2761.  
  2762.  
  2763.               Copyright (c) 1991 IEEE.  All rights reserved.
  2764.       This is an unapproved IEEE Standards Draft, subject to change.
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  22                                        3 POSIX Open System Environment
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  2777.  
  2778.  approximated.
  2779.  
  2780.  Separate but related standards may be required to support the portability
  2781.  of each of the elements listed above.  Examples of application software
  2782.  are the familiar word-processing, spreadsheet, or accounting packages, as
  2783.  developed by the consumer or a commercial application software developer.
  2784.  Each of these packages appears as an application software entity when
  2785.  executed on an application platform.
  2786.  
  2787.  One or more applications may run on a given application platform
  2788.  simultaneously, as represented by the boxes at the top of Figure 3-2.
  2789.  Each application can be thought of as an independent application entity,
  2790.  communicating and synchronizing with other applications, if necessary,
  2791.  via a variety of communications mechanisms.
  2792.  
  2793.  The Application Platform is defined (see 2.2.2.2) as the set of resources
  2794.  that support the services on which an application or application software
  2795.  will run.  It provides services at its interfaces that, as much as
  2796.  possible, make the implementation-specific characteristics of the
  2797.  platform transparent to the application software.
  2798.  
  2799.  In order to assure system integrity and consistency, application software
  2800.  entities competing for application platform resources must access all
  2801.  resources via service requests across the API.  Examples of application
  2802.  platform elements could include an operating system kernel, a realtime
  2803.  monitor program, and all hardware and peripheral drivers.
  2804.  
  2805.  The application platform concept does not imply or constrain any specific
  2806.  implementation beyond the basic requirement to supply services at the
  2807.  interfaces.  For example, the platform might be a single processor shared
  2808.  by a group of applications, or it might be a large distributed system
  2809.  with each application dedicated to a single processor.  (See 3.2.4.)
  2810.  
  2811.  The application platform for systems built to the POSIX OSE will differ
  2812.  greatly depending upon the requirements of the system and its intended
  2813.  use.  It is expected that application platforms defined to be consistent
  2814.  with the POSIX OSE will not necessarily provide all the features
  2815.  discussed here, but will use tailored subsets for a particular set of
  2816.  application software.
  2817.  
  2818.  The External Environment contains the external entities with which the
  2819.  application platform exchanges information.  These entities are
  2820.  classified into the general categories of human users, information
  2821.  interchange entities, and communications entities.
  2822.  
  2823.  Human users are not further classified, but are treated as an abstract,
  2824.  or average, person.  Information interchange entities include removable
  2825.  disk packs, floppy disks, and security badges.  Communications entities
  2826.  include phone lines, local area networks, and packet switching equipment
  2827.  
  2828.  
  2829.               Copyright (c) 1991 IEEE.  All rights reserved.
  2830.       This is an unapproved IEEE Standards Draft, subject to change.
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  3.2 POSIX Open System Environment Reference Model                      23
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  2843.  
  2844.  3.2.2  Reference Model Interfaces
  2845.  
  2846.  _________________________________________________________________________
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  _________________________________________________________________________
  2875.            Figure 3-3  -  POSIX OSE Reference Model - Interfaces
  2876.  
  2877.  
  2878.  Figure 3-3 expands Figure 3-1 to identify the services available at the
  2879.  reference model interfaces.
  2880.  
  2881.  Between these three classes of entities there are two types of interface
  2882.  where standards and other open system specifications are required to
  2883.  enable application software portability and interoperability.  These two
  2884.  interface types are labeled as the Application Program Interface (API)
  2885.  and the External Environment Interface (EEI).
  2886.  
  2887.  3.2.2.1  External Environment Interface (EEI)
  2888.  
  2889.  The External Environment Interface is defined (see 2.2.2.8) as the
  2890.  interface between the application platform and the external environment
  2891.  across which information is exchanged.  It is defined primarily in
  2892.  support of system and application software interoperability.  User and
  2893.  
  2894.  
  2895.               Copyright (c) 1991 IEEE.  All rights reserved.
  2896.       This is an unapproved IEEE Standards Draft, subject to change.
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  24                                        3 POSIX Open System Environment
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  2909.  
  2910.  data portability are directly provided by the EEI, but application
  2911.  software portability also is indirectly supported by reference to common
  2912.  concepts linking specifications at both interfaces.  The services
  2913.  available at the EEI comprise:
  2914.  
  2915.      - Human/Computer Interaction Services
  2916.  
  2917.      - Information Services
  2918.  
  2919.      - Communications Services
  2920.  
  2921.  The Human/Computer Interaction EEI is the boundary across which physical
  2922.  interaction between the human being and the application platform takes
  2923.  place.  Examples of this type of interface include CRT displays,
  2924.  keyboards, mice, and audio input/output devices.  Standardization at this
  2925.  interface will allow users to access the services of compliant systems
  2926.  without costly retraining.
  2927.  
  2928.  The Information Services EEI defines a boundary across which external,
  2929.  persistent storage service is provided, where only the format and syntax
  2930.  is required to be specified for data portability and interoperability.
  2931.  
  2932.  The Communications Services EEI provides access to services for
  2933.  interaction between internal application software entities and
  2934.  application platform external entities, such as application software
  2935.  entities on other application platforms, external data transport
  2936.  facilities, and devices.  The services provided are those where protocol
  2937.  state, syntax, and format all must be standardized for application
  2938.  interoperability.
  2939.  
  2940.  3.2.2.2  Application Program Interface (API)
  2941.  
  2942.  The Application Program Interface (API) is defined (see 2.2.2.3) as the
  2943.  interface between the application software and the application platform
  2944.  across which all services are provided.  It is defined primarily in
  2945.  support of application portability, but system and application software
  2946.  interoperability also are supported via the communications services API.
  2947.  
  2948.  The POSIX OSE API is a combination of a number of standards-based
  2949.  interfaces.  It can be thought of as a bookshelf containing several
  2950.  standards-based APIs, with each API a separate book on the bookshelf.
  2951.  
  2952.  The POSIX OSE API specifies a complete interface between the application
  2953.  software and the underlying application platform, and may be divided into
  2954.  the following parts:
  2955.  
  2956.      - System Services API                                                  e
  2957.  
  2958.  
  2959.  
  2960.  
  2961.               Copyright (c) 1991 IEEE.  All rights reserved.
  2962.       This is an unapproved IEEE Standards Draft, subject to change.
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  3.2 POSIX Open System Environment Reference Model                      25
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  2975.  
  2976.      - Communications Services API                                          e
  2977.  
  2978.      - Information Services API                                             e
  2979.  
  2980.      - Human/Computer Interaction Services API                              e
  2981.  
  2982.  The last three APIs listed are required to provide the application         e
  2983.  software with access to services associated with each of the external
  2984.  environment entities.
  2985.  
  2986.  The first API is required to provide access to services associated with    e
  2987.  the application platform internal resources, identified as the System
  2988.  Services API.  This interface may be divided into two types of
  2989.  specifications; i.e., Language Service and System Services API
  2990.  specifications.
  2991.  
  2992.  Definitions of services at the API take the form of programming-language
  2993.  specifications, language-independent service specifications, and language
  2994.  bindings for the service specifications.  These specifications may be
  2995.  described as follows:
  2996.  
  2997.      (1)  Those traditionally associated with the language specifications,
  2998.           such as program control (if ... then ... else), math functions,
  2999.           string manipulation, etc., defined as _t_h_e _p_r_o_g_r_a_m_m_i_n_g _l_a_n_g_u_a_g_e
  3000.           _A_P_I, and
  3001.  
  3002.      (2)  Services provided by the underlying application platform defined
  3003.           independent of language, such as interprocess communications,
  3004.           interobject messages, access to the user interface, and data
  3005.           storage.  Specifications of for these services are defined
  3006.           independently of any programming language, and are identified as
  3007.           _l_a_n_g_u_a_g_e-_i_n_d_e_p_e_n_d_e_n_t _s_e_r_v_i_c_e _s_p_e_c_i_f_i_c_a_t_i_o_n_s.
  3008.  
  3009.      (3)  The language-independent service specifications are translated
  3010.           into language-specific specifications used by programmers in
  3011.           writing applications.  These specifications provide access to
  3012.           the services using methods consistent with a specific
  3013.           programming language.  Such language-specific specifications are
  3014.           called _l_a_n_g_u_a_g_e-_b_i_n_d_i_n_g _A_P_I_s.
  3015.  
  3016.  Creation of a _l_a_n_g_u_a_g_e-_i_n_d_e_p_e_n_d_e_n_t _s_e_r_v_i_c_e _s_p_e_c_i_f_i_c_a_t_i_o_n facilitates the
  3017.  management and development of consistent language binding standards.  The
  3018.  language-binding specifications are used directly by programmers and
  3019.  application platform suppliers in implementing application software and
  3020.  platforms.
  3021.  
  3022.  The ``programming language''/``language binding'' dichotomy may be a
  3023.  result of the way Information Technology standards are currently
  3024.  developed.  Programming language specifications are developed with the
  3025.  
  3026.  
  3027.               Copyright (c) 1991 IEEE.  All rights reserved.
  3028.       This is an unapproved IEEE Standards Draft, subject to change.
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  26                                        3 POSIX Open System Environment
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  3041.  
  3042.  goal of being ``system independent'' (e.g., C, COBOL, FORTRAN, etc.).
  3043.  Language Binding specifications (e.g., POSIX.1 {2}, MOSI, etc.) are being
  3044.  translated into ``language-independent'' specifications, with one or more
  3045.  bindings for specific languages.
  3046.  
  3047.  
  3048.  3.2.3  EEI-API Service Relationships
  3049.  
  3050.  The relationships between similarly named services provided at the API
  3051.  and the EEI are not simple one-to-one relationships.  For example, a data
  3052.  storage service interface may provide an application with transparent
  3053.  access to a remote file via network services.  In this case, the
  3054.  completion of the data storage service provided at the API is dependent
  3055.  upon, and can be thought of as having been ``translated'' into,
  3056.  communication services provided at the EEI.
  3057.  
  3058.  Fortunately, it is not essential for the purpose of satisfying the
  3059.  requirements of the POSIX OSE to specify these relationships in detail.
  3060.  In fact, a detailed definition could unnecessarily constrain the
  3061.  implementation.  A given implementation of the application platform will
  3062.  define the relationship between the API and EEI in different ways.
  3063.  
  3064.  
  3065.  3.2.4  POSIX OSE-Based Distributed Systems
  3066.  
  3067.  In a distributed environment, multiple application platforms may interact
  3068.  by way of a network external to the platforms, but connected to them via
  3069.  the communications EEI, as in Figure 3-4.  For an application software
  3070.  entity to gain access to the EEI services, communications services are
  3071.  requested at the API.  The implementation of the application platform
  3072.  translates these API requests into appropriate action at the EEI.
  3073.  
  3074.  Communication occurs between application platforms via external entities
  3075.  that implement the data transport function.  These can use a wide variety
  3076.  of implementation methods and protocols, providing access to distributed
  3077.  data and services via the network.
  3078.  
  3079.  Distributed Systems are manifest in this model primarily through the use
  3080.  of the distributed system network services API.  As can be seen in
  3081.  Figure 3-5, distributed systems are a refinement of the POSIX Network
  3082.  Environment Model shown in Figure 4-3.  As such, a perceived Application
  3083.  Platform may in fact be comprised of several (or many) individual
  3084.  application platforms.  However, in the distributed environment, they
  3085.  operate and are viewed as a single entity by the using applications.
  3086.  Within this extended application platform are the embedded network
  3087.  services necessary for the elements of a distributed environment to
  3088.  function.
  3089.  
  3090.  
  3091.  
  3092.  
  3093.               Copyright (c) 1991 IEEE.  All rights reserved.
  3094.       This is an unapproved IEEE Standards Draft, subject to change.
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  3.2 POSIX Open System Environment Reference Model                      27
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  3107.  
  3108.  _________________________________________________________________________
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  _________________________________________________________________________
  3129.       Figure 3-4  -  POSIX OSE Reference Model - Distributed Systems
  3130.  
  3131.  
  3132.  Within the distributed environment, network access between the platforms
  3133.  that make up the ``perceived'' application platform are handled using the
  3134.  Distributed Systems Network Services APIs.  Network services for access
  3135.  between ``perceived'' application platforms will use the Network Services
  3136.  EEI between the platforms.
  3137.  
  3138.  
  3139.  
  3140.  3.3  POSIX Open System Environment Services
  3141.  
  3142.  This guide defines a uniform set of standard services provided to users
  3143.  of application platforms in support of POSIX objectives of application
  3144.  portability and system interoperability.  These services are available to
  3145.  users across specified interfaces keyed to the POSIX reference model
  3146.  defined in 3.2.
  3147.  
  3148.  The POSIX OSE services are divided into categories described by the
  3149.  clauses in Section 4.  Each category begins by defining a more detailed
  3150.  and specialized version of the OSE reference model (see 3.2) to provide
  3151.  context for service specification.  Services and associated standards are
  3152.  then defined for each category.  Finally, POSIX OSE Cross-Category
  3153.  Services affecting each category are discussed.
  3154.  
  3155.  The service descriptions for each category are intended to be complete
  3156.  and not merely representative.  Further refinement through successive
  3157.  
  3158.  
  3159.               Copyright (c) 1991 IEEE.  All rights reserved.
  3160.       This is an unapproved IEEE Standards Draft, subject to change.
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  28                                        3 POSIX Open System Environment
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  3173.  
  3174.  _________________________________________________________________________
  3175.  
  3176.  
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  _________________________________________________________________________
  3199.             Figure 3-5  -  Distributed System Environment Model
  3200.  
  3201.  
  3202.  releases of this document will lead to a complete specification.
  3203.  
  3204.  
  3205.  
  3206.  3.4  POSIX Open System Environment Standards
  3207.  
  3208.  The identification of a complete, consistent suite of standards for the
  3209.  POSIX OSE will, by necessity, draw from many forums.  One of the criteria
  3210.  for judging completeness is the satisfaction of the full range of
  3211.  services required by the application platform user.  The factors used to
  3212.  select standards will be described followed by the selection precedence.
  3213.  
  3214.  Note that while the services are stated with a clear partitioning in
  3215.  mind, the standards reflect the current partitioning.  These standards
  3216.  were created within disparate organizations and projects, which were in
  3217.  many cases carried out in isolation from the others.  As a result,
  3218.  mapping of services to standards is not a simple relationship.
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.               Copyright (c) 1991 IEEE.  All rights reserved.
  3226.       This is an unapproved IEEE Standards Draft, subject to change.
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  3.4 POSIX Open System Environment Standards                            29
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  3239.  
  3240.  3.4.1  Factors in Standards Selection
  3241.  
  3242.  The selection criteria for standards to be included in the POSIX OSE are
  3243.  based upon four concepts.  Those concepts are Those concepts are
  3244.  openness, Stage of Completion, stability, Geographic Scope of Consensus,
  3245.  Functional Scope Addressed within this guide, Consistency with
  3246.  POSIX.1 {2}, and Availability for Unencumbered Implementation.
  3247.  
  3248.      (1)  Openness
  3249.  
  3250.           Standards development organizations can differ from one another
  3251.           by virtue of their ``openness.''  That is, some standards
  3252.           development bodies utilize an open forum for the development of
  3253.           standards while other bodies use a closed forum.  The result is
  3254.           a varying degree of consensus in the technical content of the
  3255.           standards across development bodies.
  3256.  
  3257.           As a general rule, standards developed by accredited standards
  3258.           development organizations (all of which use an open forum) are
  3259.           preferred over those standards developed by bodies using a
  3260.           closed forum.
  3261.  
  3262.      (2)  Stage of Completion
  3263.  
  3264.           Another factor involved in the selection of standards for
  3265.           inclusion in the POSIX OSE is ``stage of completion.''  That is,
  3266.           there is a standards development life cycle process whose
  3267.           effects need to be taken into account.  Most standards follow a
  3268.           sequence from approved development, through draft, and on to
  3269.           approved standard.
  3270.  
  3271.           As a general rule, where choices were made among standards, the
  3272.           more complete standards were favored.
  3273.  
  3274.      (3)  Stability
  3275.  
  3276.           A third factor in determining which standards are included in
  3277.           the POSIX OSE is stability.  This factor refers to anticipated
  3278.           change in the standard over time.  This change may expand or
  3279.           contract the technical coverage of the standard.
  3280.  
  3281.           As a general rule the more stable standards are preferred over
  3282.           those subject to change.
  3283.  
  3284.      (4)  Geographic Scope of Consensus
  3285.  
  3286.           There are differences among standards development bodies with
  3287.           respect to the scope of their geographic consensus.  Some among
  3288.           those bodies are formal standards bodies (i.e., accredited as
  3289.  
  3290.  
  3291.               Copyright (c) 1991 IEEE.  All rights reserved.
  3292.       This is an unapproved IEEE Standards Draft, subject to change.
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  30                                        3 POSIX Open System Environment
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  3305.  
  3306.           standards developers by a recognized body).  It is typical for
  3307.           those bodies to be authorized to develop standards for a
  3308.           particular technical topic and have their standards applicable
  3309.           to some defined geographic area.  Formal standards development
  3310.           bodies are typically empowered to develop standards for either
  3311.           international, regional or national standards coverage.
  3312.  
  3313.           The general rule applied in the selection of standards for
  3314.           inclusion in the POSIX Open System Environment is to select
  3315.           standards developed by those bodies that have the greatest scope
  3316.           of coverage.  This results in a precedence for standards
  3317.           selection of international, followed by regional, followed by
  3318.           national body developed standards.
  3319.  
  3320.      (5)  Functional Scope Addressed within this guide
  3321.  
  3322.           A specification is listed only if it addresses some service
  3323.           requirement listed in this guide.  Standards and/or
  3324.           specifications listed are not, however, limited to one per set
  3325.           of services.
  3326.  
  3327.      (6)  Consistency with POSIX.1 {2}
  3328.  
  3329.           Standards listed in this guide are suitable for inclusion in a
  3330.           profile with POSIX.1 {2}, and do not contradict that standard in
  3331.           any way.
  3332.  
  3333.      (7)  Availability for Unencumbered Implementation
  3334.  
  3335.           A standard or specification is listed only if it is available
  3336.           for implementation to the specification and distribution of that
  3337.           implementation is unencumbered.  The specification qualifies for
  3338.           inclusion in the guide even if the document itself is a salable
  3339.           item.
  3340.  
  3341.  
  3342.  3.4.2  Selection Precedence
  3343.  
  3344.  The list below shows the precedence of standards and specifications as
  3345.  used for inclusion in the POSIX OSE.  The order from top to bottom is
  3346.  from most to least preferred.
  3347.  
  3348.      (1)  Approved standards developed by accredited international bodies
  3349.  
  3350.      (2)  Approved standards developed by accredited regional bodies
  3351.  
  3352.      (3)  Approved standards developed by accredited national bodies
  3353.  
  3354.  
  3355.  
  3356.  
  3357.               Copyright (c) 1991 IEEE.  All rights reserved.
  3358.       This is an unapproved IEEE Standards Draft, subject to change.
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  3.4 POSIX Open System Environment Standards                            31
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  3371.  
  3372.      (4)  Draft standards developed by accredited international bodies
  3373.  
  3374.      (5)  Draft standards developed by accredited regional bodies
  3375.  
  3376.      (6)  Draft standards developed by accredited national bodies.
  3377.  
  3378.      (7)  Recognized de facto standards and specifications developed by
  3379.           nonaccredited bodies using an open forum
  3380.  
  3381.      (8)  Approved standards and specifications developed by nonaccredited
  3382.           international standards bodies using a closed forum
  3383.  
  3384.      (9)  Approved standards and specifications developed by nonaccredited
  3385.           national standards bodies using a closed forum.
  3386.  
  3387.  Standards projects for which there is no draft or approved standard are
  3388.  never selected for inclusion in the POSIX OSE.
  3389.  
  3390.  Only the highest precedence specification is listed or discussed in the    e
  3391.  main text.                                                                 e
  3392.  
  3393.  This guide only cites government and de facto standards and
  3394.  specifications in discussion of gaps in available standards.
  3395.  
  3396.  
  3397.  
  3398.  3.5  POSIX Open System Environment Profiles
  3399.  
  3400.  The results of Open System specification projects are collected into an
  3401.  expanding set of ``Base Standards,'' addressing a growing subset of
  3402.  functional requirements.
  3403.  
  3404.  Profile projects then select among these base standards to create a
  3405.  tailored, consistent set of standards addressing a more specific type (or
  3406.  instance) of system or set of application software.  Profiles satisfy the
  3407.  requirements of application ``domains'' such as office or industrial
  3408.  automation, transaction processing, or realtime control systems.
  3409.  
  3410.  This framework provides a way to characterize the functionality of
  3411.  profile activities.  The current OSI profiles tend to focus strictly on
  3412.  the communications EEI.  Other profiles might focus on a single component
  3413.  or span multiple interface types.
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.               Copyright (c) 1991 IEEE.  All rights reserved.
  3424.       This is an unapproved IEEE Standards Draft, subject to change.
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  32                                        3 POSIX Open System Environment
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  3437.  
  3438.  3.6  Application Platform Implementation Considerations
  3439.  
  3440.  Profile writers need to be aware that in an open system environment, the
  3441.  application platform can be decomposed into independently procurable
  3442.  components.  While standards are interface specifications, and as such
  3443.  are independent of implementation, there are aspects of platform
  3444.  implementation or construction that may affect the specification of
  3445.  standards, and that profile writers may want to address.
  3446.  
  3447.  For each case, the portion of the application platform that implements
  3448.  any particular independently procurable service is described as the
  3449.  service component.  Figure 3-6 shows an application platform made up of
  3450.  several service components.  If components interact, the specification of
  3451.  the interface between service components within the application platform
  3452.  may be standardized or nonstandard (including proprietary).
  3453.  
  3454.  _________________________________________________________________________
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  _________________________________________________________________________
  3475.              Figure 3-6  -  Service Components and Interfaces
  3476.  
  3477.  
  3478.  An intercomponent interface is labeled in Figure 3-6 as ``System Internal
  3479.  Interface'' because it may be used to assemble an application platform
  3480.  from multiple components.  Figure 3-6 shows how a System Internal
  3481.  Interface is shown in the reference model.
  3482.  
  3483.  A standards-based SII between the application platform service components
  3484.  addresses portability and interoperability of the application platform
  3485.  service components, not portability and interoperability of application
  3486.  software and systems.
  3487.  
  3488.  
  3489.               Copyright (c) 1991 IEEE.  All rights reserved.
  3490.       This is an unapproved IEEE Standards Draft, subject to change.
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  3.6 Application Platform Implementation Considerations                 33
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  3503.  
  3504.  Development of an SII would also require a consensus to emerge on the
  3505.  ``best'' design and implementation of system software/hardware.  Very
  3506.  little consensus has developed on the partitioning of the platform into
  3507.  components and consequent allocation of function to each.  In fact, this
  3508.  aspect of system design has been in a constant and accelerating state of
  3509.  innovation for decades.  One of the major objectives of the API is to
  3510.  provide a more stable interface that decouples application software from
  3511.  the constantly changing platform.  This enables the migration of
  3512.  application software to platforms based on constantly upgraded
  3513.  technology.  (See 3.1 ``Accommodation of New Information System
  3514.  Technology''.)
  3515.  
  3516.  The relationship and services exchanged among the components may be quite
  3517.  complex and varied in different implementations.  This complexity and
  3518.  variety would, of necessity, be reflected in an SII.  It would not,
  3519.  however, be visible to the application software at the API, since one of
  3520.  the major objectives of the API is to hide this complexity.  (See 3.1
  3521.  ``Implementation Transparency''.)
  3522.  
  3523.  Since SII specifications
  3524.  
  3525.      - do not affect application portability and interoperability, and
  3526.  
  3527.      - do not affect specification of the API and EEI, and
  3528.  
  3529.      - are primarily driven by specific implementations of the application
  3530.        platform,
  3531.  
  3532.  SII specification is beyond the scope of this guide.
  3533.  
  3534.  Specification of SII in this guide would represent an unnecessary
  3535.  constraint on the implementation of the application platform, and are
  3536.  unnecessary for the specification of the API and EEI.
  3537.  
  3538.  There are a number of ways which the Application Platform can be divided
  3539.  into separate service components.  The main decomposition methods are
  3540.  division, layering, and redirection.  These methods are indistinguishable
  3541.  to the application software and external entities, in that they all
  3542.  interface to the application platform via the API and EEI, respectively.
  3543.  They assume a starting base application platform, which provides a subset
  3544.  of the required services.
  3545.  
  3546.  
  3547.  3.6.1  Subdivision
  3548.  
  3549.  In this commonly used method, the application platform is simply
  3550.  subdivided into a base and one or more service components.  See
  3551.  Figure 3-7.
  3552.  
  3553.  
  3554.  
  3555.               Copyright (c) 1991 IEEE.  All rights reserved.
  3556.       This is an unapproved IEEE Standards Draft, subject to change.
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  34                                        3 POSIX Open System Environment
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  3569.  
  3570.  _________________________________________________________________________
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576.  
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  _________________________________________________________________________
  3586.      Figure 3-7  -  Application Platform Implementation - Subdivision
  3587.  
  3588.  
  3589.  One possible implementation of this is to link the appropriate service
  3590.  modules directly into the system kernel.
  3591.  
  3592.  The internal interfaces used in this method are normally proprietary, and
  3593.  hence normally imply that both components will come from the same vendor.
  3594.  
  3595.  In this case the Application Platform and the Application Platform Base
  3596.  are the same entity.
  3597.  
  3598.  
  3599.  3.6.2  Layering
  3600.  
  3601.  In layering, the service is interposed as a layer between the application
  3602.  software and the base application platform.  See Figure 3-8.
  3603.  
  3604.  This is the most common method of supplying a service component that is
  3605.  independent of the base.  One possible implementation is to provide the
  3606.  service component as a set of library routines.
  3607.  
  3608.  Whether the interface between the service layer and the base application
  3609.  platform conforms to any standards affects the portability of the service
  3610.  component.  Note that specifying a standard API for this interface
  3611.  guarantees only that this component will be portable at the source level.
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.               Copyright (c) 1991 IEEE.  All rights reserved.
  3622.       This is an unapproved IEEE Standards Draft, subject to change.
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  3.6 Application Platform Implementation Considerations                 35
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  P1003.0/D14
  3635.  
  3636.  _________________________________________________________________________
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650.  
  3651.  
  3652.  
  3653.  _________________________________________________________________________
  3654.       Figure 3-8  -  Application Platform Decomposition II - Layering
  3655.  
  3656.  _________________________________________________________________________
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  _________________________________________________________________________
  3674.     Figure 3-9  -  Application Platform Decomposition III - Redirection
  3675.  
  3676.  
  3677.  3.6.3  Redirection
  3678.  
  3679.  Redirection allows a service component to ask the base application
  3680.  platform to redirect all requests for that type of service to the service
  3681.  component.  See Figure 3-9.  Possible examples of such services are
  3682.  device drivers, network protocol handlers, and database engines.
  3683.  
  3684.  
  3685.  
  3686.  
  3687.               Copyright (c) 1991 IEEE.  All rights reserved.
  3688.       This is an unapproved IEEE Standards Draft, subject to change.
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  36                                        3 POSIX Open System Environment
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  3701.  
  3702.  In actual implementation, the service component may or may not be a
  3703.  separate process.  Possible implementations are:  dynamically loadable
  3704.  kernel modules, library routines layered over IPC, and lightweight kernel
  3705.  processes.
  3706.  
  3707.  Note that there are three interfaces.  The application software normally
  3708.  sees a complete, standard API to the base.  The service component has two
  3709.  interfaces--one to effect the redirection, and one to provide base
  3710.  services to the service application software entity.  Considerations for
  3711.  portability discussed under Layering also apply here.
  3712.  
  3713.  Note also that no POSIX standardization activity currently exists for the
  3714.  redirection interface.
  3715.  
  3716.  
  3717.  
  3718.  
  3719.  
  3720.  
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728.  
  3729.  
  3730.  
  3731.  
  3732.  
  3733.  
  3734.  
  3735.  
  3736.  
  3737.  
  3738.  
  3739.  
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.               Copyright (c) 1991 IEEE.  All rights reserved.
  3754.       This is an unapproved IEEE Standards Draft, subject to change.
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  3.6 Application Platform Implementation Considerations                 37
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.  
  3771.  
  3772.  
  3773.  
  3774.  
  3775.  
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781.  
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.                                                                P1003.0/D14
  3833.  
  3834.  
  3835.  
  3836.  
  3837.  
  3838.  
  3839.  
  3840.  
  3841.              Section 4: POSIX Open System Environment Services
  3842.  
  3843.  
  3844.  
  3845.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _F_r_i_t_z _S_c_h_u_l_z
  3846.  
  3847.  This section describes the services required in support of the objectives
  3848.  identified in this guide.  The services are grouped in major categories
  3849.  defined in Section 3, with more detailed breakdowns within each category
  3850.  as appropriate.  These categories are:
  3851.  
  3852.     System Services                                                         e
  3853.  
  3854.           4.1   Language Services
  3855.  
  3856.           4.2   System Services
  3857.  
  3858.     Communications Services
  3859.  
  3860.           4.3   Network Services
  3861.  
  3862.     Information Services
  3863.  
  3864.           4.4   Database Services
  3865.  
  3866.           4.5   Data Interchange Services
  3867.  
  3868.           4.6   Transaction Processing Services                             e
  3869.  
  3870.     Human-Computer Interaction Services
  3871.  
  3872.           4.7   Windowing System Services
  3873.  
  3874.           4.8   Graphic Services
  3875.  
  3876.           4.9   Character-Based User Interface Services
  3877.  
  3878.           4.10  User Command Interface Services
  3879.  
  3880.                                                                             e
  3881.  
  3882.  
  3883.  
  3884.  
  3885.               Copyright (c) 1991 IEEE.  All rights reserved.
  3886.       This is an unapproved IEEE Standards Draft, subject to change.
  3887.  
  3888.  
  3889.  
  3890.  
  3891.  4 POSIX Open System Environment Services                               39
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  3899.  
  3900.  Criteria used to partition services are outlined in 3.2, and discussed at
  3901.  the beginning of each clause.  The discussion for each of the service
  3902.  category subclauses follows the same outline, and is as follows:
  3903.  
  3904.     4._n.1    Overview and Rationale                                         e
  3905.  
  3906.              This text gives an overview of the service category and        e
  3907.              rationale for its use as a category.                           e
  3908.  
  3909.     4._n.2    Scope                                                          e
  3910.  
  3911.              This text introduces the scope of this service category, and
  3912.              the criteria used to identify the services within it.
  3913.  
  3914.     4._n.3    Reference Model
  3915.  
  3916.              This subclause builds on the model of clause 3.2 and gives
  3917.              additional detail related to the interfaces and services
  3918.              discussed there.  An optional subclause may discuss
  3919.              implementation considerations, similar to the discussion of
  3920.              3.6.
  3921.  
  3922.     4._n.4    Service Requirements
  3923.  
  3924.              This text provides the definition of service requirements
  3925.              within the scope described in 4._n.2.
  3926.  
  3927.     4._n.5    Standards, Specifications, and Gaps
  3928.  
  3929.              A table lists the standards and specifications available to
  3930.              meet the service requirements listed in 4._n.4.  This is
  3931.              followed by a brief discussion of services for which
  3932.              standards are not available.  The list of standards in the     e
  3933.              table is comprehensive for the area covered by the 4._n.4       e
  3934.              requirements; there are no applicable standards or emerging    e
  3935.              standards excluded from the POSIX OSE.  Within the table, the  e
  3936.              Type column refers to the status of the requirement:           e
  3937.  
  3938.                 S  A current standard                                       e
  3939.  
  3940.                 E  An emerging standard                                     e
  3941.  
  3942.                 G  A requirement not satified by a formal standard (gap)    e
  3943.  
  3944.     4._n.5.1  Current Standards
  3945.  
  3946.              The following subclauses cite existing specifications that
  3947.              have been approved as standards by accredited standards
  3948.              bodies, in the order of precedence identified in 3.4.2.  When
  3949.  
  3950.  
  3951.               Copyright (c) 1991 IEEE.  All rights reserved.
  3952.       This is an unapproved IEEE Standards Draft, subject to change.
  3953.  
  3954.  
  3955.  
  3956.  
  3957.  40                               4 POSIX Open System Environment Services
  3958.  
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  3965.  
  3966.              service requirements are satisfied at a higher precedence
  3967.              level, specifications at a lower level are not listed.
  3968.  
  3969.     4._n.5.2  Emerging Standards
  3970.  
  3971.              The following subclauses provide an alphabetized list of       e
  3972.              specifications and/or activities that address the functional   e
  3973.              areas within the 4._n section, but which have not yet been
  3974.              completed.  Where a group or activity is cited, the charter
  3975.              of the group may address the functionality, but it is
  3976.              possible that a draft may not be available.  Only those
  3977.              services not currently addressed by existing standards are to
  3978.              be discussed in this subclause.  It is expected that
  3979.              documents will migrate from 4._n.5.2 to 4._n.5.1 as they
  3980.              complete the consensus process.
  3981.  
  3982.     4._n.5.3  Gaps in Available Standards
  3983.  
  3984.              This subclause identifies those service requirements that
  3985.              have not been satisfied by existing or emerging standards.
  3986.              If all service requirements in this category have been met by
  3987.              existing or emerging standards, this subclause will be empty.
  3988.              Text in this subclause will be minimal.
  3989.  
  3990.     4._n.5.3.1 Public Specifications
  3991.  
  3992.              This subclause lists any specification outside of the formal
  3993.              standards community that is available to anyone (e.g., no
  3994.              membership required) for implementation and distribution
  3995.              (including sale) without restriction, including all
  3996.              government and de facto standards.
  3997.  
  3998.     4._n.5.3.2 Unsatisfied Service Requirements
  3999.  
  4000.              This subclause lists the services for which no specification
  4001.              has been cited in this guide.  Products may be cited here to
  4002.              illustrate capabilities that are not addressed by standards.
  4003.  
  4004.     4._n.6    POSIX OSE Cross-Category Services
  4005.  
  4006.              This subclause contains any discussion of the Cross-Category
  4007.              Services in Section 5 that is specific to subclause 4._n.
  4008.  
  4009.     4._n.7    Related Standards
  4010.  
  4011.              This subclause is optional and may identify interdependencies
  4012.              among standards that should be taken into account when
  4013.              selecting among them.
  4014.  
  4015.  
  4016.  
  4017.               Copyright (c) 1991 IEEE.  All rights reserved.
  4018.       This is an unapproved IEEE Standards Draft, subject to change.
  4019.  
  4020.  
  4021.  
  4022.  
  4023.  4 POSIX Open System Environment Services                               41
  4024.  
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  4031.  
  4032.     4._n.8    Open Issues
  4033.  
  4034.              This subclause is optional and may identify issues under
  4035.              discussion in the open systems community.
  4036.  
  4037.  Specification of performance metrics is not within the scope of this       e
  4038.  guide.                                                                     e
  4039.  
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.  
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.  
  4065.  
  4066.  
  4067.  
  4068.  
  4069.  
  4070.  
  4071.  
  4072.  
  4073.  
  4074.  
  4075.  
  4076.  
  4077.  
  4078.  
  4079.  
  4080.  
  4081.  
  4082.  
  4083.               Copyright (c) 1991 IEEE.  All rights reserved.
  4084.       This is an unapproved IEEE Standards Draft, subject to change.
  4085.  
  4086.  
  4087.  
  4088.  
  4089.  42                               4 POSIX Open System Environment Services
  4090.  
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  4097.  
  4098.  4.1  Language Services
  4099.  
  4100.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _D_o_n _F_o_l_l_a_n_d
  4101.  
  4102.  
  4103.  _4._1._1  Overview and Rationale
  4104.  
  4105.  While a consistent interface to the operating system is essential for
  4106.  applications portability, the application will have been developed using
  4107.  language and system development tools that, in turn, require support by
  4108.  standards to achieve source code portability.
  4109.  
  4110.  Those responsible for system or software development will wish to write
  4111.  programs in code supported by an international standard and compile the
  4112.  code using a compiler that has a certificate of conformance issued by an
  4113.  accredited test center.  Noncompliant extensions must be avoided if
  4114.  applications portability is to be maintained.  Compilers should identify
  4115.  nonstandard-compliant code.
  4116.  
  4117.  The languages that have been identified in this document are those seen
  4118.  to be in most popular use today for software development.  The POSIX.2
  4119.  shell command language is discussed in 4.10.  The standards identified
  4120.  are the most widely recognized today, with significant use in the
  4121.  Information Technology industry on a broad range of processors, or where
  4122.  a large installed base of a particular version is known to exist.
  4123.  
  4124.  
  4125.  4.1.2  Scope
  4126.  
  4127.  The services described in this clause cover the most widely used third-
  4128.  generation computer languages in use today for the development of
  4129.  applications; i.e., the languages used to write application programs.
  4130.  Fourth-generation languages are not currently addressed in this guide.
  4131.  In order for a program to address an API to the services described in
  4132.  other clauses of this guide, an appropriate language binding to that
  4133.  interface is required.  References to those bindings will be found in the
  4134.  clause describing the relevant service.
  4135.  
  4136.  
  4137.  4.1.3  Reference Model
  4138.  
  4139.  This subclause identifies the entities and interfaces supporting language
  4140.  services.  The reference model based on the reference model in Figure 3-1
  4141.  is illustrated in Figure 4-1, but because the language services directly
  4142.  support the binding of the applications to the API, there is no EEI.
  4143.  However, the EEI is shown in Figure 4-1 for consistency.
  4144.  
  4145.  At the simplistic level, the programmer developing an application that
  4146.  requires only basic operating system services will use a compiler that
  4147.  
  4148.  
  4149.               Copyright (c) 1991 IEEE.  All rights reserved.
  4150.       This is an unapproved IEEE Standards Draft, subject to change.
  4151.  
  4152.  
  4153.  
  4154.  
  4155.  4.1 Language Services                                                  43
  4156.  
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  4163.  
  4164.  _________________________________________________________________________
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  _________________________________________________________________________
  4182.               Figure 4-1  -  Language Service Reference Model
  4183.  
  4184.  
  4185.  meets both the fundamental language standard (e.g., ISO 1989: 1985 for
  4186.  COBOL, ISO 1359: 1990 for Fortran) and the binding established for the
  4187.  relevant system calls in POSIX.1 {2}.
  4188.  
  4189.  As identified in 4.6, an application program may also require database
  4190.  services that will be provided by the Database Manager API.  The database
  4191.  vendor will offer an API to meet the requirements for the popular
  4192.  programming languages.
  4193.  
  4194.  In a POSIX Open System Environment the intention is that support is
  4195.  provided for all languages identified in 4.1.4.
  4196.  
  4197.  
  4198.  4.1.4  Service Requirements
  4199.  
  4200.  Programming language services provide the basic syntax and semantic
  4201.  definition for use by a software developer to describe the desired
  4202.  application software function.  While most clauses in this guide provide
  4203.  a comprehensive list of services, in the case of languages many services
  4204.  are a unique function of the language specification.  Rather than extend
  4205.  the size of this guide, the detail is more appropriately found in the
  4206.  relevant language manuals and supporting standards.
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.               Copyright (c) 1991 IEEE.  All rights reserved.
  4216.       This is an unapproved IEEE Standards Draft, subject to change.
  4217.  
  4218.  
  4219.  
  4220.  
  4221.  44                               4 POSIX Open System Environment Services
  4222.  
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  4229.  
  4230.  4.1.4.1  Application Program Services
  4231.  
  4232.  Programmers require the ability to write and execute a program in the      e
  4233.  language of their choice.  The selection of a particular programming
  4234.  language for the development of an application may depend on a variety of
  4235.  factors, including the capability to provide some of the functions listed
  4236.  here:
  4237.  
  4238.      - Arithmetic operation
  4239.  
  4240.      - Code structure
  4241.  
  4242.      - Data definition
  4243.  
  4244.      - Data representation
  4245.  
  4246.      - Error handling
  4247.  
  4248.      - I/O operations
  4249.  
  4250.      - Mathematical functions
  4251.  
  4252.      - Program control logic
  4253.  
  4254.  The programming languages identified in this clause are:
  4255.  
  4256.        Ada
  4257.        APL
  4258.        BASIC
  4259.        C
  4260.        C++
  4261.        COBOL
  4262.        Common LISP
  4263.        FORTRAN
  4264.        Pascal
  4265.        PL/1
  4266.        Prolog
  4267.  
  4268.  As well as making reference to the relevant language standard, where a
  4269.  programmer requires to call other services, e.g., seeks access to
  4270.  graphics kernel system, it will be necessary to refer to the relevant
  4271.  language binding to those services.  Language bindings are identified in
  4272.  the Standards subclause, 4._n.10, of each service clause in Chapter 4.
  4273.  
  4274.  
  4275.  
  4276.  
  4277.  
  4278.  
  4279.  
  4280.  
  4281.               Copyright (c) 1991 IEEE.  All rights reserved.
  4282.       This is an unapproved IEEE Standards Draft, subject to change.
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  4.1 Language Services                                                  45
  4288.  
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  4295.  
  4296.  4.1.4.1.1  Ada
  4297.  
  4298.  Ada is a procedural language based on the Pascal programming language.
  4299.  It is capable of processing both numerical and textual data and has the
  4300.  key attributes of:
  4301.  
  4302.      - Strong data typing
  4303.  
  4304.      - Data abstraction
  4305.  
  4306.      - Structured constructs
  4307.  
  4308.      - Multitasking
  4309.  
  4310.      - Concurrent processing
  4311.  
  4312.  Although Ada was developed initially for military purposes, it is
  4313.  considered suitable for a variety of business and industrial
  4314.  applications.
  4315.  
  4316.  4.1.4.1.2  APL
  4317.  
  4318.  APL is a language and interactive programming environment oriented around
  4319.  multidimensional arrays of characters and numbers.  It uses an extremely
  4320.  compact notation based on powerful primitive functions and function-
  4321.  combining operators.  Revisions to the language are in preparation to
  4322.  permit single array elements to contain arrays.
  4323.  
  4324.  4.1.4.1.3  BASIC
  4325.  
  4326.  BASIC is an interactive and procedural language with some similarity to
  4327.  FORTRAN.  It is readily learned by non-computer-literate individuals.
  4328.  Commonly used for educational purposes, it has also been adopted in a
  4329.  variety of business and commercial applications running on small business
  4330.  systems.  BASIC offers:
  4331.  
  4332.      - Conversational statements
  4333.  
  4334.      - Free style input
  4335.  
  4336.      - Segmentation of complex statements
  4337.  
  4338.      - Six significant digits of accuracy
  4339.  
  4340.      - Mathematical functions
  4341.  
  4342.  
  4343.  
  4344.  
  4345.  
  4346.  
  4347.               Copyright (c) 1991 IEEE.  All rights reserved.
  4348.       This is an unapproved IEEE Standards Draft, subject to change.
  4349.  
  4350.  
  4351.  
  4352.  
  4353.  46                               4 POSIX Open System Environment Services
  4354.  
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  4361.  
  4362.  4.1.4.1.4  C
  4363.  
  4364.  C is a general purpose procedural language that was developed for the
  4365.  UNIX operating system.  It offers the control and data structure of a
  4366.  high-level language and the efficiency of primitive operators that have
  4367.  made it very suitable for system programming.
  4368.  
  4369.  4.1.4.1.5  C++
  4370.  
  4371.  C++ has evolved as a superset of C and may be viewed as a procedural
  4372.  language, while at the same time offering the capability for object-
  4373.  oriented programming.  The concept of an object-oriented language is to
  4374.  define data objects that include sets of operations to manipulate the
  4375.  data, and so direct these objects to apply the necessary operations which
  4376.  comprise the application.
  4377.  
  4378.  4.1.4.1.6  COBOL
  4379.  
  4380.  COBOL is a procedural language designed originally to meet the needs of
  4381.  business.  It permits use of natural words and phrases, enabling the
  4382.  language to be adopted by non-technical writers with a basic appreciation
  4383.  of information processing.  The language offers file organization
  4384.  features, variable data length, input/output procedures, and report
  4385.  generation.
  4386.  
  4387.  4.1.4.1.7  Common LISP
  4388.  
  4389.  LISP is an interactive nonprocedural language.  The basic entity is the
  4390.  symbolic expression which is either an atomic symbol or a list structure.
  4391.  A list is a set of items in a specific order.  Lists can be variable
  4392.  length and dynamically adjusted; the items can be of different type.
  4393.  
  4394.  4.1.4.1.8  FORTRAN
  4395.  
  4396.  Though originally developed for processing scientific problems the
  4397.  language is widely used in commercial and educational applications.  It
  4398.  is a procedural language whose grammar, symbols, rules, and syntax are
  4399.  simple mathematical and English-language conventions.  Its focus is on
  4400.  numerical computation, using simple concise statements, operating on
  4401.  small amounts of input data and little text.
  4402.  
  4403.  4.1.4.1.9  Pascal
  4404.  
  4405.  This is a procedural language that is particularly effective in
  4406.  structured programming and was designed to help programmers in rapid
  4407.  error detection.  It is highly efficient, handling both numerical and
  4408.  textual data.  It is considered very suitable for small system
  4409.  applications such as typesetting, editorial work, computer aided design
  4410.  (CAD), and manufacturing processes.
  4411.  
  4412.  
  4413.               Copyright (c) 1991 IEEE.  All rights reserved.
  4414.       This is an unapproved IEEE Standards Draft, subject to change.
  4415.  
  4416.  
  4417.  
  4418.  
  4419.  4.1 Language Services                                                  47
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  4427.  
  4428.  4.1.4.1.10  PL/1
  4429.  
  4430.  This is a procedural language introduced to offer in one language the
  4431.  strengths of both COBOL and FORTRAN; i.e., serving both the business and
  4432.  scientific communities.  It has the FORTRAN strength of simple
  4433.  statements, coupled with the ability, as in COBOL, to manipulate data and
  4434.  organize files.  It is block structured, facilitating good programming
  4435.  techniques.
  4436.  
  4437.  4.1.4.1.11  Prolog
  4438.  
  4439.  This language, like LISP, is nonprocedural and has an emphasis on
  4440.  description rather than on action.  It is described as pattern-directed
  4441.  role-based programming using definitions of conditions established within
  4442.  the program to satisfy a query.  It is of particular value in
  4443.  applications of artificial intelligence, for constructing expert or
  4444.  knowledge-based systems.
  4445.  
  4446.  4.1.4.2  External Environment Interface Services
  4447.  
  4448.  Not applicable.
  4449.  
  4450.  4.1.4.3  Interapplication Software Entity Services
  4451.  
  4452.  Not applicable.
  4453.  
  4454.  4.1.4.4  Language Resource Management Services
  4455.  
  4456.  Not applicable.
  4457.  
  4458.  
  4459.  4.1.5  Standards, Specifications, and Gaps
  4460.  
  4461.  4.1.5.1  Current Standards                                                 e
  4462.  
  4463.  See Table 4-1.                                                             e
  4464.  
  4465.  _A_d_a
  4466.  
  4467.  ISO 8652: 1987 is the current version of the international standard for
  4468.  Ada, which was an endorsement of the ANSI standard 1815A-1983.
  4469.  
  4470.  _A_P_L
  4471.  
  4472.  ISO 8485 is the current version of the international standard for APL.
  4473.  
  4474.  
  4475.  
  4476.  
  4477.  
  4478.  
  4479.               Copyright (c) 1991 IEEE.  All rights reserved.
  4480.       This is an unapproved IEEE Standards Draft, subject to change.
  4481.  
  4482.  
  4483.  
  4484.  
  4485.  48                               4 POSIX Open System Environment Services
  4486.  
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  4493.  
  4494.  
  4495.                      Table 4-1  -  Language Standards
  4496.  __________________________________________________________________________________________________________________________________________________
  4497.                Service        Type   Specification   Subclause              e
  4498.            ____________________________________________________             e
  4499.  
  4500.            Ada                 S     ISO 8652        4.1.5.1     e          ee
  4501.            APL                 S     ISO 8485        4.1.5.1     e          ee
  4502.            BASIC               S     ISO 6373        4.1.5.1     e          ee
  4503.            C                   S     ISO/IEC 9899    4.1.5.1     e          ee
  4504.            C++                 E     n/a             4.1.5.2     e          ee
  4505.            COBOL               S     ISO 1989        4.1.5.1     e          ee
  4506.            Common LISP         G     n/a             4.1.5.1     e          ee
  4507.            FORTRAN             S     ISO 1539        4.1.5.3     e          ee
  4508.            Pascal              S     ISO 7185        4.1.5.1     e          ee
  4509.            PL/1                S     ISO 6160        4.1.5.1     e          ee
  4510.            PL/1 (GP Subset)    S     ISO 6522        4.1.5.1     e          ee
  4511.            PROLOG              G     n/a             4.1.5.3     e          ee
  4512.  __________________________________________________________________________________________________________________________________________________
  4513.  
  4514.  
  4515.  _B_A_S_I_C
  4516.  
  4517.  ISO 6373: 1984 is the current version of the international standard for
  4518.  minimal BASIC.
  4519.  
  4520.  _C
  4521.  
  4522.  ISO/IEC 9899: 1990 is the current version of the international standard
  4523.  for the C language.
  4524.  
  4525.  _C_O_B_O_L
  4526.  
  4527.  ISO 1989: 1985 is the latest version of the international standard for
  4528.  COBOL, which was an endorsement of the ANSI standard X3.23-1985.  An
  4529.  Addendum is in process at present entitled ``Intrinsic function module.''
  4530.  
  4531.  _F_o_r_t_r_a_n
  4532.  
  4533.  ISO 1539: 1990 is the latest revision of the international standard for
  4534.  Fortran.
  4535.  
  4536.  _P_a_s_c_a_l
  4537.  
  4538.  ISO 7185: 1983 is the current version of the international standard for
  4539.  Pascal, which was an endorsement of the British standard BS 6192-1982.
  4540.  
  4541.  
  4542.  
  4543.  
  4544.  
  4545.               Copyright (c) 1991 IEEE.  All rights reserved.
  4546.       This is an unapproved IEEE Standards Draft, subject to change.
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  4.1 Language Services                                                  49
  4552.  
  4553.  
  4554.  
  4555.  
  4556.  
  4557.  
  4558.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  4559.  
  4560.  _P_L_/_1
  4561.  
  4562.  ISO 6160: 1979 is the current version of the international standard for
  4563.  PL/1, which was an endorsement of the ANSI standard X3.53-1976.  ISO
  4564.  6522: 1985 is the current version of the international standard for a
  4565.  General Purpose subset of PL/1, which is an endorsement of ANSI standard
  4566.  X3.74-1981.  A revision of this standard is at Draft IS stage.
  4567.  
  4568.  4.1.5.2  Emerging Standards                                                e
  4569.  
  4570.  _B_A_S_I_C                                                                      e
  4571.  
  4572.  CD 10279 is a proposal for Full BASIC.                                     e
  4573.  
  4574.  _C_+_+                                                                        e
  4575.  
  4576.  ISO/IEC JTC 1/SC22/WG21 has a work item for standardizing C++.  This will  e
  4577.  be based on the standard under development in ANSI X3J16.                  e
  4578.  
  4579.  _P_a_s_c_a_l
  4580.  
  4581.  DIS 10206 is a draft international standard for extended Pascal.
  4582.  
  4583.                                                                             e
  4584.  
  4585.  4.1.5.3  Gaps in Available Standards
  4586.  
  4587.  4.1.5.3.1  Standards and Specifications outside the POSIX OSE
  4588.  
  4589.  None.                                                                      e
  4590.  
  4591.  4.1.5.3.2  Unsatisfied Service Requirements
  4592.  
  4593.  There is a requirement for standardization of the following languages:
  4594.  
  4595.        C++
  4596.        LISP
  4597.        Prolog
  4598.  
  4599.  
  4600.  4.1.6  OSE Cross-Category Services
  4601.  
  4602.  Not applicable.
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609.  
  4610.  
  4611.               Copyright (c) 1991 IEEE.  All rights reserved.
  4612.       This is an unapproved IEEE Standards Draft, subject to change.
  4613.  
  4614.  
  4615.  
  4616.  
  4617.  50                               4 POSIX Open System Environment Services
  4618.  
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  4625.  
  4626.  4.1.7  Related Standards
  4627.  
  4628.  Many of the services within the POSIX OSE require APIs with bindings to
  4629.  languages identified in this clause; e.g., Graphics, Database.  Reference
  4630.  to the particular language binding standard is to be found in the
  4631.  relevant service clause.
  4632.  
  4633.  
  4634.  4.1.8  Open Issues
  4635.  
  4636.  While there are occasional calls for 4GL standards, there has been little
  4637.  effort applied so far.
  4638.  
  4639.  
  4640.  
  4641.  
  4642.  
  4643.  
  4644.  
  4645.  
  4646.  
  4647.  
  4648.  
  4649.  
  4650.  
  4651.  
  4652.  
  4653.  
  4654.  
  4655.  
  4656.  
  4657.  
  4658.  
  4659.  
  4660.  
  4661.  
  4662.  
  4663.  
  4664.  
  4665.  
  4666.  
  4667.  
  4668.  
  4669.  
  4670.  
  4671.  
  4672.  
  4673.  
  4674.  
  4675.  
  4676.  
  4677.               Copyright (c) 1991 IEEE.  All rights reserved.
  4678.       This is an unapproved IEEE Standards Draft, subject to change.
  4679.  
  4680.  
  4681.  
  4682.  
  4683.  4.1 Language Services                                                  51
  4684.  
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  4691.  
  4692.  
  4693.  
  4694.  
  4695.  
  4696.  
  4697.  
  4698.  
  4699.  
  4700.  
  4701.  
  4702.  
  4703.  
  4704.  
  4705.  
  4706.  
  4707.  
  4708.  
  4709.  
  4710.  
  4711.  
  4712.  
  4713.  
  4714.  
  4715.  
  4716.  
  4717.  
  4718.  
  4719.  
  4720.  
  4721.  
  4722.  
  4723.  
  4724.  
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.               Copyright (c) 1991 IEEE.  All rights reserved.
  4744.       This is an unapproved IEEE Standards Draft, subject to change.
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  52                               4 POSIX Open System Environment Services
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  4757.  
  4758.  4.2  System Services
  4759.  
  4760.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _P_a_t_r_i_c_i_a _O_b_e_r_n_d_o_r_f
  4761.  
  4762.  
  4763.  4.2.1  Overview and Rationale
  4764.  
  4765.  This clause describes the system services component of the application
  4766.  platform.  It presents a reference model for this component and describes
  4767.  the services provided to application software.  Those services are those
  4768.  usually considered as part of an operating system or executive and also
  4769.  those services that may be provided by system level entities such as
  4770.  spoolers and device drivers.  Standards, current and emerging, that
  4771.  specify the interface to those system services are also described.
  4772.  
  4773.  System services are a key component of the application platform and
  4774.  represent the focus of the IEEE effort to produce POSIX base standards.
  4775.  A common set of system services provides support for the portability and
  4776.  the interoperability of application software.  While other common
  4777.  services can aid application reuse, system services are those that are
  4778.  common to the largest number of applications.
  4779.  
  4780.  
  4781.  4.2.2  Scope
  4782.  
  4783.  System services cover those features that users have come to expect from
  4784.  operating systems or executives.  They cover the areas of process
  4785.  management, file management, input/output, memory management, and print
  4786.  spoolers.  Because there is a wide variety of platform users, ranging
  4787.  from large general purpose time-shared systems to small time-critical,
  4788.  special-purpose systems, services such as timers and clocks, event
  4789.  management, logical device drivers, and system
  4790.  initialization/reinitialization are included.  Services related to
  4791.  distributed systems are also discussed, since application software sees
  4792.  these capabilities through the platform.
  4793.  
  4794.  
  4795.  4.2.3  Reference Model
  4796.  
  4797.  This subclause identifies the entities and interfaces specific to the
  4798.  system services of the POSIX OSE.  The reference model presented here is
  4799.  consistent with and expands upon the reference model of Section 3.  It
  4800.  provides the context for the discussion of System Services in this
  4801.  clause.  The basis System Services model is shown in Figure 4-2.
  4802.  
  4803.  This clause describes the system services portion of the application
  4804.  platform as viewed by a software developer (not necessarily the viewpoint
  4805.  of the end user).  This view corresponds to the program design level of
  4806.  abstraction.
  4807.  
  4808.  
  4809.               Copyright (c) 1991 IEEE.  All rights reserved.
  4810.       This is an unapproved IEEE Standards Draft, subject to change.
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  4.2 System Services                                                    53
  4816.  
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  4823.  
  4824.  _________________________________________________________________________
  4825.  
  4826.  
  4827.  
  4828.  
  4829.  
  4830.  
  4831.  
  4832.  
  4833.  
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  _________________________________________________________________________
  4842.               Figure 4-2  -  System Services Reference Model
  4843.  
  4844.  
  4845.  The system services API provides the interface between the application
  4846.  software and the system services from the source code point of view.  The
  4847.  API defines the program designer's means of accessing the functions,
  4848.  objects, and services of the system.
  4849.  
  4850.  In order for the platform to protect system integrity and ensure system
  4851.  database consistency, application software competing for system resources
  4852.  must access all system resources via system service requests.  The formal
  4853.  definition of these requests (or system calls) defines the system
  4854.  services portion of the API.
  4855.  
  4856.  All of the system services may be available locally or remotely.  Some of
  4857.  the system services may be performed remotely if the system is a
  4858.  distributed system with multiple processor nodes.  Such distribution is
  4859.  not reflected in Figure 4-2 because it is transparent to users of the
  4860.  System Services.
  4861.  
  4862.  The platform's device drivers and other software entities are seen as
  4863.  being available to an application program via invocation of the system
  4864.  services.  Local devices include sensors, effectors, and connections to
  4865.  independent computing systems.  The local devices themselves are a part
  4866.  of the external entities element of the system services reference model.
  4867.  The interfaces used by the application software are the logical device
  4868.  interfaces and are part of the system services.  It should be noted that,
  4869.  even though the device drivers are represented within the system services
  4870.  portion of the application platform and the devices themselves are
  4871.  represented within the external entities, there is no unique system
  4872.  service interface illustrated at the EEI in Figure 3-3.  This is not an
  4873.  
  4874.  
  4875.               Copyright (c) 1991 IEEE.  All rights reserved.
  4876.       This is an unapproved IEEE Standards Draft, subject to change.
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  54                               4 POSIX Open System Environment Services
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  4889.  
  4890.  oversight; such interfaces are not within the scope of this guide.         e
  4891.  
  4892.                                                                             e
  4893.  
  4894.  
  4895.  4.2.4  Service Requirements
  4896.  
  4897.  This subclause identifies those processor-oriented system services
  4898.  required to support application portability and system interoperability.
  4899.  Subclause 4.2.4.1 describes those system services directly available to
  4900.  an application program via the System Services API.  Other processor-
  4901.  oriented services are described in 4.2.4.4.  Subclause 4.2.5 identifies
  4902.  the applicable standards.
  4903.  
  4904.  This subclause describes the major groups of system services that an
  4905.  application may require of a platform.  Not all of these services require
  4906.  a programming interface; therefore, services are described as either
  4907.  explicit or implicit services.  Explicit services are those that can be
  4908.  accessed from an application program (via the API) and generally are only
  4909.  provided when requested.  Implicit services, on the other hand, are
  4910.  services that the platform provides without a direct request.  An example
  4911.  of an implicit service is the prevention of one program from writing over
  4912.  the memory of another.  An example of an explicit service is a call to a
  4913.  system service routine to output the contents of a block of memory to
  4914.  some device.
  4915.  
  4916.  4.2.4.1  Application Program Interface Services
  4917.  
  4918.  This subclause describes the major categories of system services
  4919.  available at the System Services API.  These services include:
  4920.  
  4921.      - Process Management Services
  4922.  
  4923.      - Task Management Services
  4924.  
  4925.      - Environment Services
  4926.  
  4927.      - Node Internal Communication and Synchronization Services
  4928.  
  4929.      - Generalized Input/Output Services
  4930.  
  4931.      - File Oriented Services
  4932.  
  4933.      - Event, Error, and Exception Management Services
  4934.  
  4935.      - Time Services
  4936.  
  4937.      - Memory Management Services
  4938.  
  4939.  
  4940.  
  4941.               Copyright (c) 1991 IEEE.  All rights reserved.
  4942.       This is an unapproved IEEE Standards Draft, subject to change.
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  4.2 System Services                                                    55
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  4955.  
  4956.      - Logical Naming Services
  4957.  
  4958.      - System Initialization, Reinitialization, and Shutdown Services
  4959.  
  4960.  4.2.4.1.1  Process Management Services
  4961.  
  4962.  These services relate to the creation, management, and deletion of
  4963.  processes executing within the scope of an operating system.  These
  4964.  processes are distinguished from ``tasks'' via the following
  4965.  characteristics:
  4966.  
  4967.      - They have a single thread of execution per address space.
  4968.  
  4969.      - There is substantial overhead for context switches.
  4970.  
  4971.      - Specific attributes are associated only with processes.
  4972.  
  4973.  In this context, ``management'' consists of those services that affect
  4974.  the execution of a process:
  4975.  
  4976.      - Stop and restart execution of a process (e.g., suspend, resume)
  4977.  
  4978.      - Modify processor allocation to a process (e.g., priority,
  4979.        timeslice)
  4980.  
  4981.      - Modify scheduling of the process based on timer (or other) events
  4982.  
  4983.      - Protect the process from interruption during critical periods
  4984.  
  4985.      - Create a process and make it ready for execution
  4986.  
  4987.      - Destroy a process and recover its resources
  4988.  
  4989.      - Evaluate a reference to a process
  4990.  
  4991.      - Evaluate a connection to a process, where a connection is a logical
  4992.        communication path between any two processes
  4993.  
  4994.  These services schedule or arbitrate the usage of various resources of
  4995.  the OS, particularly the central processing unit (CPU).  The scheduling
  4996.  services must be able to queue up requests to use a particular resource.
  4997.  This situation is made more complicated by the common need to schedule
  4998.  processes to run cyclically at a fixed period.  When a resource becomes
  4999.  idle, the scheduler must select one of the ``requesters'' of the resource
  5000.  to grant use of the resource.  These services are listed separately
  5001.  rather than under the services that use scheduling to emphasize that
  5002.  there should be uniformity and consistency of scheduling across the range
  5003.  of resources.
  5004.  
  5005.  
  5006.  
  5007.               Copyright (c) 1991 IEEE.  All rights reserved.
  5008.       This is an unapproved IEEE Standards Draft, subject to change.
  5009.  
  5010.  
  5011.  
  5012.  
  5013.  56                               4 POSIX Open System Environment Services
  5014.  
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  5021.  
  5022.  Typically, there are at least two types of scheduling occurring in an
  5023.  operating system:  short-term and long-term.  Long-term schedulers
  5024.  determine which possible requesters at a given time may actually request
  5025.  a resource.  The short-term scheduler selects from among the active
  5026.  ``requesters'' that currently have need of the resource and allocates the
  5027.  resource to the selected ``requester.''  For example, if the requesters
  5028.  are processes and the resource is the CPU, the long-term scheduler
  5029.  manages the movement of processes from inactive (waiting in batch queues
  5030.  or in hibernation) to active (in wait or execute).  The short-term
  5031.  scheduler, on the other hand, would determine which process should
  5032.  execute next on the CPU.  Hybrid services between the two may also be
  5033.  available in the operating system.
  5034.  
  5035.  When a request for a resource is submitted to the operating system (at
  5036.  some local operating system node), it is not always serviced at that
  5037.  local node.  The most advantageous way to service the request may result
  5038.  in part or all of the work being performed at a different processor node.
  5039.  Several reasons may cause this to occur, including load balancing,
  5040.  resource availability, computation speedup, hardware preference, and
  5041.  software preference.  These services may hide from the application the
  5042.  fact that the functionality was being performed at a different node.
  5043.  This has the advantage that the code needs to know little about the
  5044.  system on which it is running.  Alternately, the services may allow the
  5045.  user to specify directly on which logical resource the function should be
  5046.  executed.
  5047.  
  5048.  The priority scheduling of resources allows the requester to have
  5049.  associated with it its importance to use the service.  More complex
  5050.  schemes also have a criticalness of the request that is used for graceful
  5051.  degradation purposes.  The scheduler(s) will use the priority information
  5052.  to arbitrate resource requests and to queue requests in the specific
  5053.  order.  A priority scheduler may need to support multilevel queues to
  5054.  support proper execution.
  5055.  
  5056.  Preemptive schedulers will deallocate a resource from a requester when
  5057.  certain events occur.  Usually this is when a requester of a higher
  5058.  priority or importance requests the resource or a specified time limit
  5059.  for the resource has expired.
  5060.  
  5061.  4.2.4.1.2  Task Management Services
  5062.  
  5063.  These services relate to the creation, management, and deletion of tasks
  5064.  executing within the scope of an operating system.  These tasks are
  5065.  distinguished from ``processes'' via the following characteristics:
  5066.  
  5067.      - There may be multiple threads of execution per address space.
  5068.  
  5069.      - There is low overhead for context switches between threads located
  5070.        in the same address space.
  5071.  
  5072.  
  5073.               Copyright (c) 1991 IEEE.  All rights reserved.
  5074.       This is an unapproved IEEE Standards Draft, subject to change.
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  4.2 System Services                                                    57
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  5087.  
  5088.  In this context, ``management'' consists of those services that affect
  5089.  the execution of a task:
  5090.  
  5091.      - Stop and restart execution of a task (e.g., suspend, resume).
  5092.  
  5093.      - Modify processor allocation to a task (e.g., priority, timeslice).
  5094.  
  5095.      - Modify scheduling of the task based on timer (or other) events.
  5096.  
  5097.      - Protect the task from interruption during critical periods.
  5098.  
  5099.      - Create a task and make it ready for execution.
  5100.  
  5101.      - Destroy a task.
  5102.  
  5103.      - Evaluate a reference to a task.
  5104.  
  5105.      - Evaluate a connection to a task, where a connection is a logical
  5106.        communication path between any two tasks.
  5107.  
  5108.  4.2.4.1.3  Environment Services
  5109.  
  5110.  These services provide an application access to a variety of information
  5111.  relating to the operating system environment in which the application is
  5112.  executing.  The specific characteristics are:
  5113.  
  5114.      - Process-specific attributes (process identification, priority,
  5115.        stack size, scheduling attributes, status, memory allocation).
  5116.  
  5117.      - Task-specific attributes (task identification, priority, scheduling
  5118.        attributes, status, memory allocation).
  5119.  
  5120.      - Processor-specific attributes (node identification, electronic
  5121.        nameplate information).
  5122.  
  5123.      - User-specific attributes (user identification and terminal ID, user
  5124.        interaction profile).
  5125.  
  5126.      - Environment variables (command-line arguments, menu selections).
  5127.  
  5128.      - Current time and date
  5129.  
  5130.  4.2.4.1.4  Node Internal Communication and Synchronization Services
  5131.  
  5132.  One or more applications and application subcomponents may run on a
  5133.  processor within an application platform simultaneously.  The
  5134.  applications run as independent software entities and communicate among
  5135.  themselves via a variety of mechanisms provided or managed by the system
  5136.  services (see Figure 3-2).  An important class of system services relates
  5137.  
  5138.  
  5139.               Copyright (c) 1991 IEEE.  All rights reserved.
  5140.       This is an unapproved IEEE Standards Draft, subject to change.
  5141.  
  5142.  
  5143.  
  5144.  
  5145.  58                               4 POSIX Open System Environment Services
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  5153.  
  5154.  to the coordination and synchronization of these software entities.  In
  5155.  traditional systems, entities execute on a single hardware processor.
  5156.  However, it is becoming common to have multiple processors and networked
  5157.  processors that place more requirements on the system services to provide
  5158.  coordination and synchronization among the many truly concurrent software
  5159.  entities.
  5160.  
  5161.  When a platform has several software entities executing concurrently, the
  5162.  applications need system services so that the entities can be coordinated
  5163.  and synchronized with each other.  With respect to applications written
  5164.  using concurrency, there are two levels of concurrency that are usually
  5165.  seen by the application developer.  The first level of concurrency, task
  5166.  level concurrency, is seen when the application is split into multiple
  5167.  subcomponents (tasks) that share access to the data and subprograms of
  5168.  the application.  Concurrency services at this level concern the relative
  5169.  priorities and scheduling of tasks within a single application program
  5170.  and their communication with each other.  At the second level of
  5171.  concurrency, application level concurrency, a unit is a single
  5172.  application including all its subcomponents.  Concurrency services at
  5173.  this level concern the relative importance of the individual applications
  5174.  competing for and sharing system resources.
  5175.  
  5176.  These services are used to communicate among processes, among tasks, and
  5177.  among processes and tasks residing on the same node.  The methods
  5178.  outlined do not include the network specific services described in 4.3,
  5179.  but are limited to methods open to entities executing within the scope of
  5180.  a single operating system.  Both synchronous and asynchronous services
  5181.  are defined.  The specific services are:
  5182.  
  5183.      - Create, delete, open, close, read, and write shared memory.
  5184.  
  5185.      - Create, delete, read, and write event flags.
  5186.  
  5187.      - Create, delete, set, and wait on semaphores.
  5188.  
  5189.      - Create/send and receive signals.
  5190.  
  5191.      - Create, delete, open, close, send to, get from, and control message
  5192.        queues.
  5193.  
  5194.      - Create, delete, send, and receive streams.
  5195.  
  5196.  4.2.4.1.5  Generalized Input/Output Services
  5197.  
  5198.  These services are used by an application to perform generalized device
  5199.  I/O operations.  These operations include synchronous and asynchronous
  5200.  operations for device and class specific functions.  Specifically, these
  5201.  form the services needed to implement or include logical device drivers
  5202.  in a system.  These services are device initialization, device
  5203.  
  5204.  
  5205.               Copyright (c) 1991 IEEE.  All rights reserved.
  5206.       This is an unapproved IEEE Standards Draft, subject to change.
  5207.  
  5208.  
  5209.  
  5210.  
  5211.  4.2 System Services                                                    59
  5212.  
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  5219.  
  5220.  attachment, asynchronous operation, and error notification.  In addition,
  5221.  they include those services that are used to directly access specific
  5222.  device capabilities, particularly those services often referred to as
  5223.  ``raw I/O.''
  5224.  
  5225.  4.2.4.1.6  File Oriented Services
  5226.  
  5227.  Mass storage in the form of hierarchy of directories, subdirectories and
  5228.  files will be available to an application executing within the
  5229.  application platform.  The following paragraphs describe the services
  5230.  available for creating, accessing, managing, and deleting these entities
  5231.  with mass storage.  Both synchronous and asynchronous services are
  5232.  defined.
  5233.  
  5234.  _N_a_m_i_n_g__a_n_d__D_i_r_e_c_t_o_r_y__S_e_r_v_i_c_e_s
  5235.  
  5236.  These services allow the access of files and directories through logical
  5237.  names rather than the actual hardware device naming conventions.  The
  5238.  services allow sharing of files at various levels.  For example, the
  5239.  services may not allow any shared naming of files and directories between
  5240.  systems, or they may allow shared files by explicit naming, or they may
  5241.  allow shared files by implicit naming.  The directory services present a
  5242.  view or views of the directory structure to the application or target
  5243.  system operator.
  5244.  
  5245.  _F_i_l_e__M_o_d_i_f_i_c_a_t_i_o_n__P_r_i_m_i_t_i_v_e_s
  5246.  
  5247.  Primitive services for files and directories are:
  5248.  
  5249.      - Read a portion of the file.
  5250.  
  5251.      - Write to a portion of the file.
  5252.  
  5253.      - Open access to a file.
  5254.  
  5255.      - Create a new file.
  5256.  
  5257.      - Close access to a file.
  5258.  
  5259.      - Delete a file.
  5260.  
  5261.      - Copy a file.
  5262.  
  5263.      - Merge two or more files.
  5264.  
  5265.      - Append one file to another.
  5266.  
  5267.      - Split one file into two or more files.
  5268.  
  5269.  
  5270.  
  5271.               Copyright (c) 1991 IEEE.  All rights reserved.
  5272.       This is an unapproved IEEE Standards Draft, subject to change.
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  60                               4 POSIX Open System Environment Services
  5278.  
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  5285.  
  5286.      - Support read and write locks at both the record and file levels.
  5287.  
  5288.  These services may be very complex.  For example, the access to read or
  5289.  write may be direct (by record number), sequential (one record at a
  5290.  time), or indexed (by a key).  The services must also support a variety
  5291.  of file structures, including linked, segmented, contiguous, serial, and
  5292.  directory.
  5293.  
  5294.  _F_i_l_e__S_u_p_p_o_r_t__S_e_r_v_i_c_e_s
  5295.  
  5296.  Additional services support the physical devices on which the files and
  5297.  directory reside.  These services include the dismounting/mounting of
  5298.  medium, the formatting of medium, and the partitioning of media.
  5299.  
  5300.  _R_e_a_l_t_i_m_e__F_i_l_e_s
  5301.  
  5302.  Realtime systems often need special files to ensure fast, bounded, and
  5303.  consistent performance in time critical situations.  The need for a
  5304.  bounded response time for a given I/O function drives the design of these
  5305.  files and services.  One service preallocates the complete disk space
  5306.  needed for a file at creation time, while another guarantees that records
  5307.  within files are aligned in an optimal way (such as along word
  5308.  boundaries).  Services support the access of records within the file in
  5309.  ways that make response time constant or bounded, including by direct
  5310.  access.
  5311.  
  5312.  4.2.4.1.7  Event, Error, and Exception Management Services
  5313.  
  5314.  These services provide a common facility for the generation and
  5315.  communication of asynchronous events among the system and application
  5316.  programs.  A major use of the event services is to report error
  5317.  conditions, but they are also used by device drivers and the platform to
  5318.  provide an indication of some condition to the application programs.
  5319.  These services are:
  5320.  
  5321.      - Event and error receipt.
  5322.  
  5323.      - Event and error distribution.
  5324.  
  5325.      - Event and error management, including user-selectable error
  5326.        processing alternatives (filtering, retry, ignore, accumulate
  5327.        occurrences).
  5328.  
  5329.      - Event logging.
  5330.  
  5331.      - Enable/disable and mask/unmask interrupts.
  5332.  
  5333.  
  5334.  
  5335.  
  5336.  
  5337.               Copyright (c) 1991 IEEE.  All rights reserved.
  5338.       This is an unapproved IEEE Standards Draft, subject to change.
  5339.  
  5340.  
  5341.  
  5342.  
  5343.  4.2 System Services                                                    61
  5344.  
  5345.  
  5346.  
  5347.  
  5348.  
  5349.  
  5350.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  5351.  
  5352.  4.2.4.1.8  Time Services
  5353.  
  5354.  Timers may be a static or dynamic resource on the system, necessitating a
  5355.  variety of allocation and management strategies.  These services are used
  5356.  by applications to perform a variety of services based on absolute and
  5357.  relative time.  These services are:
  5358.  
  5359.      - Create a timer.
  5360.  
  5361.      - Delete a timer.
  5362.  
  5363.      - Initiate the measurement of an arbitrary specified time duration.
  5364.  
  5365.      - Receive an indication when the specified duration has elapsed.
  5366.  
  5367.      - Read the current value of a timer.
  5368.  
  5369.      - Initialize a timer with a value and count direction (i.e.,
  5370.        increment or decrement).
  5371.  
  5372.      - Trigger a timer to begin incrementing or decrementing.
  5373.  
  5374.      - Associate with a timer some action to be taken when the specified
  5375.        duration has elapsed.
  5376.  
  5377.  4.2.4.1.9  Memory Management Services
  5378.  
  5379.  These services are used by application processes and tasks to request
  5380.  additional memory and return it to the processor for reuse.  They cover
  5381.  the services required to fulfill the needs of both virtual and fixed
  5382.  memory.  Specifically, there is a service for locking pages in real
  5383.  memory to support the needs of virtual memory systems.
  5384.  
  5385.  4.2.4.1.10  Logical Naming Services
  5386.  
  5387.  These services allow the usage of system resources through logical names
  5388.  rather than the actual hardware device naming conventions.  Furthermore,
  5389.  they allow the resources of other processor nodes to be accessed via a
  5390.  logical name so that no knowledge of the resource's location is needed
  5391.  and the resource's location may change over time.  Logical names are also
  5392.  used by security services to hide resources from unauthorized processes
  5393.  by only letting authorized processes know the logical name that is needed
  5394.  to use the physical resource.
  5395.  
  5396.  The logical name to physical name relationship can be one to many, many
  5397.  to one, or many to many.  Many times, one physical resource may have
  5398.  multiple logical names as well as one logical name representing a
  5399.  ``bank'' of available physical resources.  These services must provide
  5400.  the proper resolution of names, logical and physical, in all of these
  5401.  
  5402.  
  5403.               Copyright (c) 1991 IEEE.  All rights reserved.
  5404.       This is an unapproved IEEE Standards Draft, subject to change.
  5405.  
  5406.  
  5407.  
  5408.  
  5409.  62                               4 POSIX Open System Environment Services
  5410.  
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  5417.  
  5418.  cases.
  5419.  
  5420.  4.2.4.1.11  System Initialization, Reinitialization, and Shutdown
  5421.              Services
  5422.  
  5423.  System initialization consists of services for a complete restarting of
  5424.  the software, starting up the attached hardware subsystems devices, doing
  5425.  subsystem and system self tests, and completely initializing the
  5426.  database.
  5427.  
  5428.  System reinitialization consists of services for restarting the software
  5429.  while using the existing database information.  The software may have to
  5430.  be reloaded and the database may have been reestablished by a system
  5431.  recovery.  Attached hardware subsystems may also need to be
  5432.  reinitialized.
  5433.  
  5434.  Reinitialization also includes a function to restart applications
  5435.  redistributed to other processors after a processor module failure.
  5436.  Within a processor, there is a service to initialize applications in a
  5437.  system with the existing software, but with the database reinitialized.
  5438.  Also within a processor, there is a service to restart the applications
  5439.  in a system with the existing software and database retained.
  5440.  
  5441.  Shutdown services are those required to perform planned orderly shutdown
  5442.  at the local and remote levels for each and all processor(s) throughout a
  5443.  system.  These services support both crisis and non-crisis situations
  5444.  that call for system shutdown.  They make sure that the persistent store
  5445.  is in a consistent state, see to the clean termination of all processes,
  5446.  programs, devices, etc., and take care of user notification.  They also
  5447.  provide for the running of system diagnostics.
  5448.  
  5449.  4.2.4.2  External Environment Interface Services
  5450.  
  5451.  Data Interchange External Environment Interface Services are required by
  5452.  the System Services.  Of particular interest are the formats, locations,
  5453.  and procedures for using system administration files, such as password
  5454.  files, system startup files, and configuration files.
  5455.  
  5456.  4.2.4.3  Interapplication Software Entity Services
  5457.  
  5458.  This could include support for generalized network/multisession services,
  5459.  such as message handling between system components, global object
  5460.  definition specification, and intermediate language definition.
  5461.  
  5462.  
  5463.  
  5464.  
  5465.  
  5466.  
  5467.  
  5468.  
  5469.               Copyright (c) 1991 IEEE.  All rights reserved.
  5470.       This is an unapproved IEEE Standards Draft, subject to change.
  5471.  
  5472.  
  5473.  
  5474.  
  5475.  4.2 System Services                                                    63
  5476.  
  5477.  
  5478.  
  5479.  
  5480.  
  5481.  
  5482.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  5483.  
  5484.  4.2.4.4  Resource Management Services
  5485.  
  5486.  These services provide general management functions across the entire
  5487.  platform.  They consist primarily of system administration-oriented
  5488.  functions (i.e., management of system interfaces within the scope of the
  5489.  administrator, such as setting up defaults and limits.)
  5490.  
  5491.  4.2.4.4.1  System Operator Services
  5492.  
  5493.  The system operator needs to access and control the system services in
  5494.  order to allow the platform to perform properly.  If a system has an
  5495.  operator, the major functions that need to be supported are system
  5496.  control, reconfiguration, and status reporting.  Currently, these
  5497.  services are usually made available to an operator through a command
  5498.  language interpreter, which is an application program that accesses these
  5499.  system services.
  5500.  
  5501.  Note that the Windowing Services provide the building blocks (menu
  5502.  utilities, command parsers, etc.) for building the user interface while
  5503.  the System Operator Services make available operating system status and
  5504.  control functions to appropriate application programs with the proper
  5505.  security level.
  5506.  
  5507.  These services support general conventions and specifications for
  5508.  interaction between system components.
  5509.  
  5510.  4.2.4.4.2  System Administration
  5511.  
  5512.  These services and procedures are those required to assure management and
  5513.  allocation of system services to system users, both local and remote.
  5514.  They consist primarily of those services required to establish authorized
  5515.  users of the system, with associated allocation of processor resources,
  5516.  including memory, processor time, priority, and mass storage space.
  5517.  These services are both static (as in the establishment of a new user
  5518.  identification) and dynamic (as in login/logout).
  5519.  
  5520.  
  5521.  4.2.5  Standards, Specifications, and Gaps
  5522.  
  5523.  
  5524.  
  5525.  
  5526.  
  5527.  
  5528.  
  5529.  
  5530.  
  5531.  
  5532.  
  5533.  
  5534.  
  5535.               Copyright (c) 1991 IEEE.  All rights reserved.
  5536.       This is an unapproved IEEE Standards Draft, subject to change.
  5537.  
  5538.  
  5539.  
  5540.  
  5541.  64                               4 POSIX Open System Environment Services
  5542.  
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  5549.  
  5550.  
  5551.                   Table 4-2  -  System Services Standards
  5552.  __________________________________________________________________________________________________________________________________________________
  5553.                Service             Type   Specification    Subclause        e
  5554.      ________________________________________________________________       e
  5555.  
  5556.      Process Management             S     ISO/IEC 9945-1   4.2.5.1     e    ee
  5557.  
  5558.      Task Management                S     ISO/IEC 9945-1   4.2.5.1     e    ee
  5559.  
  5560.      Environment Services           S     ISO/IEC 9945-1   4.2.5.1     e    ee
  5561.  
  5562.      Node Internal Comm/Synch       S     ISO/IEC 9945-1   4.2.5.1     e    ee
  5563.  
  5564.      Generalized I/O                S     ISO/IEC 9945-1   4.2.5.1     e    ee
  5565.                                     G     OSF AES - OSC    4.2.5.3     e    ee
  5566.                                     G     SVID             4.2.5.3     e    ee
  5567.  
  5568.      File Oriented Services         S     ISO/IEC 9945-1   4.2.5.1     e    ee
  5569.  
  5570.      Event, Error, and Exception    S     ISO/IEC 9945-1   4.2.5.1     e    ee
  5571.                                     G     OSF AES - OSC    4.2.5.3     e    ee
  5572.                                     G     SVID             4.2.5.3     e    ee
  5573.  
  5574.      Time Services                  S     ISO/IEC 9945-1   4.2.5.1     e    ee
  5575.  
  5576.      Memory Management              S     ISO/IEC 9945-1   4.2.5.1     e    ee
  5577.  
  5578.      Logical Naming                 S     ISO/IEC 9945-1   4.2.5.1     e    ee
  5579.  
  5580.      System Init/Reinit/Shutdown    S     ISO/IEC 9945-1   4.2.5.1     e    ee
  5581.                                     G     OSF AES - OSC    4.2.5.3     e    ee
  5582.                                     G     SVID             4.2.5.3     e    ee
  5583.  __________________________________________________________________________________________________________________________________________________
  5584.  
  5585.  
  5586.  4.2.5.1  Current Standards
  5587.  
  5588.                                                                             e
  5589.  
  5590.  _P_o_r_t_a_b_l_e__O_p_e_r_a_t_i_n_g__S_y_s_t_e_m__I_n_t_e_r_f_a_c_e__(_P_O_S_I_X_)__P_a_r_t__1
  5591.  
  5592.  ISO/IEC 9945-1 (IEEE Std 1003.1) is the first in a set of planned
  5593.  international POSIX standards.  It defines services and characteristics
  5594.  that need to be in the platform for portable applications, as do some of
  5595.  the other planned standards.  Another type of POSIX-related standard is
  5596.  bindings for those services to specific languages.  The third type deals
  5597.  with concepts that cross between various groupings of services, such as
  5598.  security and distributed processing.
  5599.  
  5600.  
  5601.               Copyright (c) 1991 IEEE.  All rights reserved.
  5602.       This is an unapproved IEEE Standards Draft, subject to change.
  5603.  
  5604.  
  5605.  
  5606.  
  5607.  4.2 System Services                                                    65
  5608.  
  5609.  
  5610.  
  5611.  
  5612.  
  5613.  
  5614.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  5615.  
  5616.                                                                             e
  5617.  The purpose of the ISO/IEC 9945-1 standard is to define a standard
  5618.  operating system interface based on the UNIX Operating System
  5619.  documentation to support application portability at the source level.
  5620.  The document is intended for systems implementors and applications
  5621.  software developers.
  5622.  
  5623.  In addition to ISO/IEC 9945-1, ISO is planning to publish another          e
  5624.  standard (as yet unnumbered) on test methods for verification of POSIX     e
  5625.  standards, which will be identical to IEEE Std 1003.3-1991.                e
  5626.  
  5627.                                                                             e
  5628.  Table 4-3 outlines the contents of POSIX.1 {2}.  This document is          e
  5629.  identical in its ISO/IEC form (ISO/IEC 9945-1) and the US national
  5630.  standard form (IEEE Std 1003.1).  Revisions are currently in progress to
  5631.  deal with:
  5632.  
  5633.      - A language-independent services specification
  5634.  
  5635.      - A unified data interchange format
  5636.  
  5637.      - Service interfaces for control of character cell terminals
  5638.  
  5639.      - Miscellaneous functions identified in comments on the current
  5640.        standard.
  5641.  
  5642.                                                                             e
  5643.  The ISO/IEC 9945-1 standard draws heavily upon major implementations of
  5644.  the UNIX Operating System, including System V and the Berkeley versions.
  5645.  Where a specific behavior was clearly needed (e.g., signals), only a
  5646.  single behavior was permitted.  However, there are points where functions
  5647.  were considered optional and others where two different behaviors were
  5648.  considered acceptable.  However, in many cases, a solid technical
  5649.  argument favoring one approach over the other was not established.  In
  5650.  this case, two behaviors (usually System V and BSD) are defined as being
  5651.  permitted.  This is of benefit in writing portable applications, since
  5652.  those that can tolerate both behaviors will run on a wider range of
  5653.  systems.  It is also a slight disadvantage in writing such applications,
  5654.  since it can mean handling a wider range of implementations.
  5655.  
  5656.  NOTE:  FIPS 151-1 is a profile of the base standard POSIX.1 {2}.           e
  5657.  
  5658.                                                                             e
  5659.  
  5660.  
  5661.  
  5662.  
  5663.  
  5664.  
  5665.  
  5666.  
  5667.               Copyright (c) 1991 IEEE.  All rights reserved.
  5668.       This is an unapproved IEEE Standards Draft, subject to change.
  5669.  
  5670.  
  5671.  
  5672.  
  5673.  66                               4 POSIX Open System Environment Services
  5674.  
  5675.  
  5676.  
  5677.  
  5678.  
  5679.  
  5680.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  5681.  
  5682.  
  5683.               Table 4-3  -  Functionality of POSIX.1 Standard
  5684.  __________________________________________________________________________________________________________________________________________________
  5685.  
  5686.        File system organization, and file naming conventions
  5687.  
  5688.        System configuration and file system configuration
  5689.        characteristics
  5690.  
  5691.        Error messages and reporting mechanism (_e_r_r_n_o)
  5692.  
  5693.        Application environment information (_e_n_v_i_r_o_n)
  5694.  
  5695.        Process creation, management, and termination:  _e_x_e_c(),
  5696.        _f_o_r_k(), _w_a_i_t()
  5697.  
  5698.        Process environment: user ID, process ID, Group ID
  5699.  
  5700.        Exception conditions and handling (signals)
  5701.  
  5702.        Timer operations
  5703.  
  5704.        File and Directory operations:  FIFO files, pipes, status,
  5705.        open/close, read/write
  5706.  
  5707.        File protection mechanisms
  5708.  
  5709.        Record and file locking mechanism
  5710.  
  5711.        Device specific functions: Terminal controls:  Processing
  5712.        modes: echo, baud rate, modem termination
  5713.  
  5714.        C language specific routines:  _s_e_t_l_o_c_a_l_e(), nonlocal jumps
  5715.  
  5716.        User and Group database information (excluding password
  5717.        information)
  5718.  
  5719.        Data interchange formats (USTAR and CPIO)
  5720.  
  5721.        Also included is a rationale appendix that provides insight
  5722.        on the selection of various functions and features, including
  5723.        some guidance to developers to understand what types of
  5724.        variations may exist and how that can impact portability.
  5725.  
  5726.  __________________________________________________________________________________________________________________________________________________
  5727.  
  5728.  
  5729.  4.2.5.2  Emerging Standards
  5730.  
  5731.  
  5732.  
  5733.               Copyright (c) 1991 IEEE.  All rights reserved.
  5734.       This is an unapproved IEEE Standards Draft, subject to change.
  5735.  
  5736.  
  5737.  
  5738.  
  5739.  4.2 System Services                                                    67
  5740.  
  5741.  
  5742.  
  5743.  
  5744.  
  5745.  
  5746.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  5747.  
  5748.                                                                             e
  5749.  
  5750.  _I_E_E_E__P_1_0_0_3_._4                                                               e
  5751.  
  5752.  The IEEE P1003.4 Group is defining realtime extensions to ISO/IEC 9945-1.
  5753.  Draft 9 of the realtime POSIX extensions proposes standardized interfaces
  5754.  to the following functions:
  5755.  
  5756.      - Response to asynchronous events
  5757.  
  5758.      - Priority interrupts and scheduling
  5759.  
  5760.      - Preemptive scheduling
  5761.  
  5762.      - Memory locking
  5763.  
  5764.      - High-performance file system (contiguous or other)
  5765.  
  5766.      - Realtime timers (with nanosecond resolution times)
  5767.  
  5768.      - Shared memory
  5769.  
  5770.      - Semaphores
  5771.  
  5772.      - Interprocess communications (message passing)
  5773.  
  5774.      - Asynchronous event notification
  5775.  
  5776.      - Synchronous input and output.
  5777.  
  5778.  The P1003.4 group is also specifying an interface to threads (P1003.4a).
  5779.  
  5780.  4.2.5.3  Gaps in Available Standards
  5781.  
  5782.  While ISO/IEC 9945-1 and P1003.4 both represent very important work, they
  5783.  do not yet address all of the services indicated in 4.2.4.  Areas of
  5784.  particular shortfall include Event, Error, and Exception Management
  5785.  Services, some Generalized I/O Services (particularly concerning services
  5786.  for device drivers), and System Initialization, Reinitialization, and
  5787.  Shutdown Services.  In addition, Security (see 5.2) and Reliability,
  5788.  Adaptability, and Maintainability services are not reflected in these two  e
  5789.  base standards, and some capabilities are explicitly considered to be
  5790.  implementation defined.  For some of the services discussed here,
  5791.  adequate consideration is not given to the implications of multiprocessor
  5792.  and distributed implementations of the services and interface provided.
  5793.  Finally, since these are intended to be base standards (or, in the case
  5794.  of P1003.4, an extension to a base standard), profiles are needed in
  5795.  order to select appropriate features and provide appropriate combinations
  5796.  with other related capabilities.
  5797.  
  5798.  
  5799.               Copyright (c) 1991 IEEE.  All rights reserved.
  5800.       This is an unapproved IEEE Standards Draft, subject to change.
  5801.  
  5802.  
  5803.  
  5804.  
  5805.  68                               4 POSIX Open System Environment Services
  5806.  
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  5813.  
  5814.  4.2.5.3.1  Public Specifications                                           e
  5815.  
  5816.  The following are public specifications that define interfaces to
  5817.  services for which no formal standards are currently available.
  5818.  
  5819.  _O_S_F_/_1
  5820.  
  5821.  The Open Software Foundation (OSF) ``Application Environment
  5822.  Specification (AES)--Operating System Component'' (OSC).
  5823.  
  5824.  Service Gaps Addressed:
  5825.  
  5826.      - Generalized I/O
  5827.  
  5828.      - Event, Error, and Exception
  5829.  
  5830.      - System Init/Reinit/Shutdown
  5831.  
  5832.  _S_V_I_D
  5833.  
  5834.  The AT&T System V Interface Definition (SVID), Issue 3.
  5835.  
  5836.  Service Gaps Addressed:
  5837.  
  5838.      - Generalized I/O
  5839.  
  5840.      - Event, Error, and Exception
  5841.  
  5842.      - System Init/Reinit/Shutdown
  5843.  
  5844.  _X_P_G_3                                                                       e
  5845.  
  5846.  X/Open's XPG3 specifications.                                              e
  5847.  
  5848.  Service Gaps Addressed:                                                    e
  5849.  
  5850.      - Generalized I/O                                                      e
  5851.  
  5852.      - Event, Error, and Exception                                          e
  5853.  
  5854.      - System Init/Reinit/Shutdown                                          e
  5855.  
  5856.  4.2.5.3.2  Unsatisfied Service Requirements
  5857.  
  5858.  There are two significant areas of the services described above for which
  5859.  no standards currently exist.  One is the considerations implied by the
  5860.  use of multiprocessors to implement some or all of the services described
  5861.  herein.  The other area is that of interfaces to logical device drivers.
  5862.  
  5863.  
  5864.  
  5865.               Copyright (c) 1991 IEEE.  All rights reserved.
  5866.       This is an unapproved IEEE Standards Draft, subject to change.
  5867.  
  5868.  
  5869.  
  5870.  
  5871.  4.2 System Services                                                    69
  5872.  
  5873.  
  5874.  
  5875.  
  5876.  
  5877.  
  5878.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  5879.  
  5880.  4.2.6  OSE Cross-Category Services
  5881.  
  5882.  4.2.6.1  Capability and Security Services
  5883.  
  5884.  These services support the ability of the system to control usage such
  5885.  that system integrity is protected from inadvertent or malicious misuse.
  5886.  These protection services provide a mechanism for the enforcement of the
  5887.  policies governing resource usage.  Note that many of the security
  5888.  services are implicit services; i.e., they are provided without an
  5889.  explicit request to the operating system.  There are two distinct classes
  5890.  of system access with which operating system services must be concerned:
  5891.  physical access and logical access.
  5892.  
  5893.  Security services at the physical level are used to protect against
  5894.  security compromise, given unauthorized personnel may have physical
  5895.  access to system hardware.  Typically, the physical access is to a
  5896.  terminal and/or terminal/display cables; however, physical access may
  5897.  also include network cables, central processing units, disk drives, or
  5898.  tape drives.  Prevention of physical access by unauthorized personnel may
  5899.  require different operating system services under different
  5900.  circumstances.
  5901.  
  5902.  Logical access is the ability to interact with the operating system via a
  5903.  terminal/display.  Security services at the logical level can be
  5904.  implemented through passwords and watchdog timers.
  5905.  
  5906.  Capability services attach operation lists that limit a process's ability
  5907.  to act on resource objects.  This is to ensure the resources are not
  5908.  misused.  Access to resources can be protected by services using
  5909.  capability lists as well as access lists, lock/key mechanisms, global
  5910.  tables, or through dynamic protection structure services.
  5911.  
  5912.  _P_r_e_v_e_n_t_i_o_n__o_f__U_n_a_u_t_h_o_r_i_z_e_d__A_c_c_e_s_s
  5913.  
  5914.  The system may need to be guarded from attempted access by unauthorized
  5915.  personnel.  The point of access to the operating system that is typically
  5916.  of concern is through the API.  Given the mode of operation (system high,
  5917.  multilevel, open) at which the system is operating, these services differ
  5918.  and have differing implications on other system services (such as
  5919.  reliability and naming) and system performance.
  5920.  
  5921.  _P_r_e_v_e_n_t_i_o_n__o_f__D_a_t_a__C_o_m_p_r_o_m_i_s_e
  5922.  
  5923.  These services prevent access of data by users not authorized to the
  5924.  data.  These services may be implemented using access lists on files (and
  5925.  directories) and/or encryption of data or in other ways.
  5926.  
  5927.  
  5928.  
  5929.  
  5930.  
  5931.               Copyright (c) 1991 IEEE.  All rights reserved.
  5932.       This is an unapproved IEEE Standards Draft, subject to change.
  5933.  
  5934.  
  5935.  
  5936.  
  5937.  70                               4 POSIX Open System Environment Services
  5938.  
  5939.  
  5940.  
  5941.  
  5942.  
  5943.  
  5944.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  5945.  
  5946.  _P_r_e_v_e_n_t_i_o_n__o_f__S_e_r_v_i_c_e__D_e_n_i_a_l
  5947.  
  5948.  These services ensure that a service request will be met by the operating
  5949.  system in a reasonable time if the requester is authorized to use the
  5950.  service.  These services ensure that a bandit user or process cannot
  5951.  cause system malfunction by monopolizing system services or resources.
  5952.  
  5953.  _S_e_c_u_r_i_t_y__A_d_m_i_n_i_s_t_r_a_t_i_o_n
  5954.  
  5955.  This category involves services to allow the management of the security
  5956.  system, including the administration of permissions to personnel, data,
  5957.  and services as well as capability lists.  In addition, it permits the
  5958.  administration access mechanisms (most often passwords and capability
  5959.  lists) and services that allow the system to switch modes of operation.
  5960.  The services will likely be accessed by the target system operator with
  5961.  security responsibilities through the target system operator services.
  5962.  
  5963.                                                                             e
  5964.  
  5965.  
  5966.  4.2.7  Related Standards
  5967.  
  5968.  The following emerging standards are related to the services covered in
  5969.  this clause, in as much as they address at some level services either
  5970.  explicitly listed in or implied by the services found in 4.2.4:
  5971.  
  5972.     P1003.6     Security Interface for POSIX.
  5973.  
  5974.     P1003.12    Protocol Independent Interfaces (for networks).
  5975.  
  5976.     P1238       OSI Application Program Interfaces (initial effort is to
  5977.                 provide at least sufficient facilities for the support of
  5978.                 FTAM API specifications).
  5979.  
  5980.                                                                             e
  5981.  
  5982.  
  5983.  
  5984.  
  5985.  
  5986.  
  5987.  
  5988.  
  5989.  
  5990.  
  5991.  
  5992.  
  5993.  
  5994.  
  5995.  
  5996.  
  5997.               Copyright (c) 1991 IEEE.  All rights reserved.
  5998.       This is an unapproved IEEE Standards Draft, subject to change.
  5999.  
  6000.  
  6001.  
  6002.  
  6003.  4.2 System Services                                                    71
  6004.  
  6005.  
  6006.  
  6007.  
  6008.  
  6009.  
  6010.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  6011.  
  6012.  
  6013.  
  6014.  
  6015.  
  6016.  
  6017.  
  6018.  
  6019.  
  6020.  
  6021.  
  6022.  
  6023.  
  6024.  
  6025.  
  6026.  
  6027.  
  6028.  
  6029.  
  6030.  
  6031.  
  6032.  
  6033.  
  6034.  
  6035.  
  6036.  
  6037.  
  6038.  
  6039.  
  6040.  
  6041.  
  6042.  
  6043.  
  6044.  
  6045.  
  6046.  
  6047.  
  6048.  
  6049.  
  6050.  
  6051.  
  6052.  
  6053.  
  6054.  
  6055.  
  6056.  
  6057.  
  6058.  
  6059.  
  6060.  
  6061.  
  6062.  
  6063.               Copyright (c) 1991 IEEE.  All rights reserved.
  6064.       This is an unapproved IEEE Standards Draft, subject to change.
  6065.  
  6066.  
  6067.  
  6068.  
  6069.  72                               4 POSIX Open System Environment Services
  6070.  
  6071.  
  6072.  
  6073.  
  6074.  
  6075.  
  6076.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  6077.  
  6078.  4.3  Network Services
  6079.  
  6080.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _C_h_a_r_l_e_s _S_e_v_e_r_a_n_c_e
  6081.  
  6082.  
  6083.  4.3.1  Overview and Rationale
  6084.  
  6085.  This clause describes the network services component of the application
  6086.  platform.  It also describes the services provided to application
  6087.  programs and users, and it describes current and emerging standards that
  6088.  are standardizing these services.
  6089.  
  6090.  Applications gain direct access to network services via the POSIX API.
  6091.  The network is just another system resource (albeit an important one)
  6092.  allocated among the competing processes.
  6093.  
  6094.  
  6095.  4.3.2  Scope
  6096.  
  6097.  Network services cover the areas of file transfer, namespace and           e
  6098.  directory services, electronic mail services, services in support of       e
  6099.  distributed environments such as remote procedure call, distributed time
  6100.  management, transparent file access, and data representation services.
  6101.  The application programs using these services should be able to access
  6102.  them via a high-level, context-insensitive or low-level, context-
  6103.  dependent interface.
  6104.  
  6105.  In the open systems and distributed system environments, interoperability
  6106.  is of equal or greater importance than portability.  The network
  6107.  protocols defined for both Open Systems Interconnect (OSI) and Internet
  6108.  Protocol Suite (IPS) for TCP/IP should provide the basis for the open
  6109.  networking interfaces; however, these interfaces should not preclude the
  6110.  use of some subsequent networking protocol in the future.  The interfaces  e
  6111.  provided by the network services must be network protocol independent and  e
  6112.  provide for this level of interoperability.                                e
  6113.  
  6114.  It is important for an open system to interoperate with more systems than
  6115.  just other open systems.  Many open systems users will have requirements
  6116.  to interoperate with non-OSI networks for the near future.                 e
  6117.  
  6118.  
  6119.  4.3.3  Reference Model
  6120.  
  6121.  This subclause identifies the entities and interfaces specific to the
  6122.  construction of an POSIX Network Environment.  This environment is
  6123.  consistent with and extends the environment of Section 3.
  6124.  
  6125.  As illustrated in Figure 4-3, the components of a network architecture
  6126.  that require standardization are divided into two groups called external
  6127.  
  6128.  
  6129.               Copyright (c) 1991 IEEE.  All rights reserved.
  6130.       This is an unapproved IEEE Standards Draft, subject to change.
  6131.  
  6132.  
  6133.  
  6134.  
  6135.  4.3 Network Services                                                   73
  6136.  
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  6143.  
  6144.  _________________________________________________________________________
  6145.  
  6146.  
  6147.  
  6148.  
  6149.  
  6150.  
  6151.  
  6152.  
  6153.  
  6154.  
  6155.  
  6156.  
  6157.  
  6158.  
  6159.  
  6160.  
  6161.  
  6162.  
  6163.  
  6164.  
  6165.  _________________________________________________________________________
  6166.               Figure 4-3  -  POSIX Networking Reference Model
  6167.  
  6168.  
  6169.  environment interfaces (EEI) and application program interfaces (API).
  6170.  
  6171.  There may be some correspondence between services offered to the
  6172.  application across the API and the interfaces available at the EEI.  It
  6173.  is quite possible for an API service to have no corresponding effect at
  6174.  the EEI.  A good example of this is an interapplication communication
  6175.  service provided by the Network API between two applications on the same
  6176.  application platform.  There may also be services available at the EEI
  6177.  provided by the Application Platform that are not available at the API
  6178.  such as remote login services.
  6179.  
  6180.  4.3.3.1  Network Application Program Interface (API) Services
  6181.  
  6182.  The API is concerned with the interfaces and associated standards that
  6183.  apply to the interface between the application and the application
  6184.  platform.
  6185.  
  6186.  The services available at the API are:
  6187.  
  6188.      - Directory Services
  6189.  
  6190.      - Application to Platform Services
  6191.  
  6192.  
  6193.  
  6194.  
  6195.               Copyright (c) 1991 IEEE.  All rights reserved.
  6196.       This is an unapproved IEEE Standards Draft, subject to change.
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  74                               4 POSIX Open System Environment Services
  6202.  
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  6209.  
  6210.      - Application to Application Communication Services
  6211.  
  6212.      - Data Representation Services Services
  6213.  
  6214.      - Distributed System Services
  6215.  
  6216.      - Network Management and Security Services
  6217.  
  6218.  Directory Services are those services associated with identifying and
  6219.  naming network elements.
  6220.  
  6221.  Application to Platform Services provide an application with a very high
  6222.  level interface to networking capabilities.  This interface provides
  6223.  applications with capabilities such as ``mail this file to this address''
  6224.  or ``transfer user xxx file from host yyy to the local host.''  These
  6225.  services do not require the application to be aware of any of the low
  6226.  level network details.
  6227.  
  6228.  Application to Application Services are the services provided by the
  6229.  Application Platform that allow an application to communicate with
  6230.  another application to exchange information.  These interfaces support
  6231.  applications that range from having extremely simple networking
  6232.  requirements to the most complicated applications that must make full use
  6233.  of every possible network capability.
  6234.  
  6235.  Data Representation Services provide the application with network
  6236.  oriented data representation services to insure the application can
  6237.  interchange information with other entities in the proper format.
  6238.  
  6239.  Distributed system services provide the application with the ability to
  6240.  make use of multiple physical computer systems resources.
  6241.  
  6242.  Network management and security services allow the application to control
  6243.  and configure the network resources.
  6244.  
  6245.  4.3.3.2  External Environment Interface Elements
  6246.  
  6247.  4.3.3.2.1  User Interface EEI Elements
  6248.  
  6249.  The User interface EEI elements include the commands that users can use
  6250.  to perform network functions such as:
  6251.  
  6252.      - File transfer
  6253.  
  6254.      - Electronic mail
  6255.  
  6256.      - Remote printing
  6257.  
  6258.  
  6259.  
  6260.  
  6261.               Copyright (c) 1991 IEEE.  All rights reserved.
  6262.       This is an unapproved IEEE Standards Draft, subject to change.
  6263.  
  6264.  
  6265.  
  6266.  
  6267.  4.3 Network Services                                                   75
  6268.  
  6269.  
  6270.  
  6271.  
  6272.  
  6273.  
  6274.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  6275.  
  6276.  These commands are considered to be beyond the scope of this clause and
  6277.  will be covered in 4.10.
  6278.  
  6279.  The User interface EEI elements that will be covered in this section are
  6280.  the commands that are used to perform network management and security
  6281.  functions.
  6282.  
  6283.  4.3.3.2.2  Communication EEI Elements
  6284.  
  6285.  The primary focus of the network EEI is the network protocols and
  6286.  supporting formats for network communication.
  6287.  
  6288.  The entities in the external environment may be other application
  6289.  platforms or user interface equipment connected to the network using the
  6290.  open networking protocols.  The standards at the EEI will be in several
  6291.  areas including:
  6292.  
  6293.      - Physical connections
  6294.  
  6295.      - Network protocols and formats
  6296.  
  6297.      - Distributed systems services
  6298.  
  6299.  The standards at the EEI will impact system interoperability but also may
  6300.  have an effect on application portability because certain applications
  6301.  may require particular types of network access to operate.
  6302.  
  6303.  4.3.3.3  Implementation Aspects
  6304.  
  6305.  The POSIX OSE Network reference model focuses on the requirements of
  6306.  application portability and system interoperability.  As such, the model
  6307.  does not represent how systems are actually put together.
  6308.  
  6309.  In the network area, there is much effort dedicated to the design of
  6310.  network standards to allow network components to be re-usable.  This
  6311.  subclause shows how some of these network standards are related within
  6312.  the POSIX Network Reference Model.
  6313.  
  6314.  Other network models are also related to the POSIX OSE Network Reference
  6315.  models.  None of these other models are in conflict with the POSIX OSE
  6316.  Network Reference model.  These models show much more detail in the area
  6317.  of how different standards work together.
  6318.  
  6319.  
  6320.  
  6321.  
  6322.  
  6323.  
  6324.  
  6325.  
  6326.  
  6327.               Copyright (c) 1991 IEEE.  All rights reserved.
  6328.       This is an unapproved IEEE Standards Draft, subject to change.
  6329.  
  6330.  
  6331.  
  6332.  
  6333.  76                               4 POSIX Open System Environment Services
  6334.  
  6335.  
  6336.  
  6337.  
  6338.  
  6339.  
  6340.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  6341.  
  6342.  4.3.3.3.1  Relationship Between the OSI Reference Model and the POSIX OSE
  6343.             Network Reference Model
  6344.  
  6345.  _________________________________________________________________________
  6346.  
  6347.  
  6348.  
  6349.  
  6350.  
  6351.  
  6352.  
  6353.  
  6354.  
  6355.  
  6356.  
  6357.  
  6358.  
  6359.  
  6360.  
  6361.  
  6362.  
  6363.  
  6364.  
  6365.  _________________________________________________________________________
  6366.                     Figure 4-4  -  OSI Reference Model
  6367.  
  6368.  
  6369.  Figure 4-4 shows the OSI reference model for networking as standardized    e
  6370.  by ISO.                                                                    e
  6371.  
  6372.  There are many aspects of network architecture that are specified by the   e
  6373.  OSI reference model:                                                       e
  6374.  
  6375.      - The number of layers in the model and the roles for each layer.
  6376.  
  6377.      - An indication of which layers are logically end to end and which
  6378.        layers are simply to the next physical network node.
  6379.  
  6380.      - The services between the layers and the protocols between the peers  e
  6381.        within the same layer.  This has an impact on the actual format of
  6382.        the information transferred between nodes at the physical layer.
  6383.  
  6384.  In addition, this model specifies how networks of computer systems can be
  6385.  assembled using the routing capabilities of intermediate nodes.
  6386.  
  6387.  The POSIX OSE Network Reference Model has a much more limited scope than
  6388.  the OSI reference model.  The POSIX OSE reference model only looks at two  e
  6389.  interfaces to an application platform:  the interface between application
  6390.  software and the application platform (API) and the interface between the
  6391.  
  6392.  
  6393.               Copyright (c) 1991 IEEE.  All rights reserved.
  6394.       This is an unapproved IEEE Standards Draft, subject to change.
  6395.  
  6396.  
  6397.  
  6398.  
  6399.  4.3 Network Services                                                   77
  6400.  
  6401.  
  6402.  
  6403.  
  6404.  
  6405.  
  6406.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  6407.  
  6408.  application Platform and the External Environment (EEI).  At both the API
  6409.  and EEI, the POSIX OSE network model describes the services that are
  6410.  provided to the application or external environment at the interface.
  6411.  
  6412.  Figure 4-5 shows an example of how an application platform made up of a    e
  6413.  single computer system would provide services at the API and EEI.  It is   e
  6414.  important to note that the POSIX OSE application platform actually may be  e
  6415.  made up of multiple physical computer systems, as shown in Figure 3-5.     e
  6416.  In Figure 3-5, each computer system making up the distributed system       e
  6417.  would be running a complete OSI stack for networking.                      e
  6418.  
  6419.  Because the OSI portions of the Application Platform External Environment
  6420.  Interface depend on the format, protocol, and services of what is
  6421.  produced at the physical level of the OSI reference model, the EEI
  6422.  technically depends on all seven layers the OSI model plus the services
  6423.  added on top of the application layer such as platform provided services
  6424.  or network management services.
  6425.  
  6426.                                                                             e
  6427.  
  6428.  Figure 4-6 shows an API interface to only layer seven of the OSI Network
  6429.  interface, which is intended to be the primary API for accessing network
  6430.  services.  It is possible to define APIs that interact directly with any
  6431.  of the seven layers.  There are a number of pragmatic reasons to provide
  6432.  APIs that access layers below layer 7.  The cost of using one of these
  6433.  lower layer APIs is that the applications may sacrifice portability
  6434.  and/or interoperability.
  6435.  
  6436.  It is important to note that while these APIs are represented as a part
  6437.  of a layered network architecture, from the point of view of the
  6438.  application interacting with the application platform, this layering is
  6439.  not critical to the use of the services.  From the application
  6440.  perspective, there are simply three different types of network services,
  6441.  each with a different set of capabilities and requirements.  Whether or
  6442.  not there is any actual layering or code common to the three services is
  6443.  implementation dependent.
  6444.  
  6445.  4.3.3.3.2  POSIX Network Standards Efforts
  6446.  
  6447.  The current POSIX approach to networking focuses on producing Application
  6448.  Program Interface (API) specifications.  Most of the network connectivity
  6449.  specifications at the External Environment Interface are well covered on
  6450.  other standardization areas such as ISO (OSI networking) and the MIL-STD   e
  6451.  process (TCP/IP).                                                          e
  6452.  
  6453.  One important aspect of the POSIX networking approach is that it is not
  6454.  focusing solely on producing standard APIs for OSI Network services.  The
  6455.  POSIX Simple Network Interface (P1003.12 SNI) is explicitly designed so
  6456.  to be implemented transparently on a wide variety of networks.  At the
  6457.  
  6458.  
  6459.               Copyright (c) 1991 IEEE.  All rights reserved.
  6460.       This is an unapproved IEEE Standards Draft, subject to change.
  6461.  
  6462.  
  6463.  
  6464.  
  6465.  78                               4 POSIX Open System Environment Services
  6466.  
  6467.  
  6468.  
  6469.  
  6470.  
  6471.  
  6472.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  6473.  
  6474.  _________________________________________________________________________
  6475.  
  6476.  
  6477.  
  6478.  
  6479.  
  6480.  
  6481.  
  6482.  
  6483.  
  6484.  
  6485.  
  6486.  
  6487.  
  6488.  
  6489.  
  6490.  
  6491.  
  6492.  
  6493.  
  6494.  
  6495.  
  6496.  
  6497.  
  6498.  
  6499.  
  6500.  
  6501.  
  6502.  
  6503.  
  6504.  
  6505.  
  6506.  
  6507.  
  6508.  
  6509.  
  6510.  
  6511.  
  6512.  _________________________________________________________________________
  6513.  Figure 4-5  -  Relationship of OSI and POSIX OSE Network Reference Models
  6514.  
  6515.  
  6516.  current time the possible list includes:
  6517.  
  6518.      - OSI Application Layer
  6519.  
  6520.      - OSI Transport Layer
  6521.  
  6522.  
  6523.  
  6524.  
  6525.               Copyright (c) 1991 IEEE.  All rights reserved.
  6526.       This is an unapproved IEEE Standards Draft, subject to change.
  6527.  
  6528.  
  6529.  
  6530.  
  6531.  4.3 Network Services                                                   79
  6532.  
  6533.  
  6534.  
  6535.  
  6536.  
  6537.  
  6538.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  6539.  
  6540.  _________________________________________________________________________
  6541.  
  6542.  
  6543.  
  6544.  
  6545.  
  6546.  
  6547.  
  6548.  
  6549.  
  6550.  
  6551.  
  6552.  
  6553.  
  6554.  
  6555.  
  6556.  
  6557.  
  6558.  
  6559.  
  6560.  
  6561.  
  6562.  
  6563.  
  6564.  
  6565.  
  6566.  _________________________________________________________________________
  6567.       Figure 4-6  -  Multiple POSIX OSE APIs to Different OSI Layers
  6568.  
  6569.  
  6570.      - Internet Protocol Suite (IPS)                                        e
  6571.  
  6572.      - Other networks, including proprietary networks
  6573.  
  6574.  The current POSIX API standardization efforts include:
  6575.  
  6576.     P1003.12    Simple Network API
  6577.  
  6578.     P1003.12    Detailed Network API
  6579.  
  6580.     P1003.17    Directory Services API
  6581.  
  6582.     P1224       X.400 Electronic Mail Services API                          e
  6583.  
  6584.     P1224.1     OSI Object Management API                                   e
  6585.  
  6586.     P1238.0     OSI Application Layer API (ASCE)
  6587.  
  6588.  
  6589.  
  6590.  
  6591.               Copyright (c) 1991 IEEE.  All rights reserved.
  6592.       This is an unapproved IEEE Standards Draft, subject to change.
  6593.  
  6594.  
  6595.  
  6596.  
  6597.  80                               4 POSIX Open System Environment Services
  6598.  
  6599.  
  6600.  
  6601.  
  6602.  
  6603.  
  6604.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  6605.  
  6606.     P1238.1     OSI Application Layer API (FTAM)
  6607.  
  6608.  _________________________________________________________________________
  6609.  
  6610.  
  6611.  
  6612.  
  6613.  
  6614.  
  6615.  
  6616.  
  6617.  
  6618.  
  6619.  
  6620.  
  6621.  
  6622.  
  6623.  
  6624.  
  6625.  
  6626.  
  6627.  
  6628.  
  6629.  
  6630.  
  6631.  
  6632.  
  6633.  
  6634.  
  6635.  
  6636.  
  6637.  
  6638.  
  6639.  
  6640.  _________________________________________________________________________
  6641.                 Figure 4-7  -  POSIX Network Services Model                 e
  6642.  
  6643.  
  6644.  Figure 4-7 shows how the basic network services can be related.  The
  6645.  Simple Network Services API is designed so that a Simple Network Services
  6646.  Implementation can be done using the services available using the
  6647.  Detailed Network Interface API.  An application can use the Detailed
  6648.  Network Interface to access multiple network transports but there may be
  6649.  differences between networks visible at the API.  Applications that need
  6650.  to be portable across different types of network transports should be
  6651.  written using the Simple Networking Interface.
  6652.  
  6653.  It is important to note that while the SNI API and DNI API standards have
  6654.  been designed so that the SNI Services can make use of the DNI API to
  6655.  
  6656.  
  6657.               Copyright (c) 1991 IEEE.  All rights reserved.
  6658.       This is an unapproved IEEE Standards Draft, subject to change.
  6659.  
  6660.  
  6661.  
  6662.  
  6663.  4.3 Network Services                                                   81
  6664.  
  6665.  
  6666.  
  6667.  
  6668.  
  6669.  
  6670.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  6671.  
  6672.  access transport services, it is not a requirement that every
  6673.  implementation of SNI Services be written using the DNI API to access
  6674.  transport services.  From the point of view of the application program,
  6675.  it is only important that the application platform provide an API for
  6676.  both the SNI and DNI services.  This interface between the SNI Services
  6677.  and the Transport Services is an example of a Systems Internal Interface,  e
  6678.  as described in 3.6.
  6679.  
  6680.  Another example of a System Internal Interface that is the subject of      e
  6681.  discussion in the POSIX Network area is the interface between the OSI
  6682.  Network Services and the transport services.  This may or may not be
  6683.  required to be the DNI API.  This is an example of an interface that
  6684.  should have no impact on user application portability but may have great
  6685.  impact on the ability to procure the different types of network services
  6686.  from different vendors.
  6687.  
  6688.  The area of Directory Services (P1003.17) is also specified so to be able
  6689.  to make use of different types of Directory Services including:
  6690.  
  6691.      - X.500 Directory Services
  6692.  
  6693.      - TCP/IP Directory Services
  6694.  
  6695.      - IEEE P1003.7 System Administration and Management Services
  6696.  
  6697.  Figure 4-8 shows how the Directory Services are related to the other
  6698.  network services.  All of the APIs and SIIs from the previous figure have
  6699.  been eliminated to reduce the number of interfaces shown on the figure.
  6700.  
  6701.  
  6702.  4.3.4  Service Requirements
  6703.  
  6704.  The service requirements for the network component of an open system are
  6705.  very wide ranging.  Many of the other components of the application
  6706.  platform make implicit or explicit use of network services.
  6707.  
  6708.  Much standardization effort has gone into the aspects of networking that
  6709.  are available at the external environment interface.  Effective
  6710.  networking standards at the external interface are fundamental to
  6711.  providing system interoperability.
  6712.  
  6713.  The service requirements for both the API and EEI are described in this
  6714.  section.
  6715.  
  6716.  
  6717.  
  6718.  
  6719.  
  6720.  
  6721.  
  6722.  
  6723.               Copyright (c) 1991 IEEE.  All rights reserved.
  6724.       This is an unapproved IEEE Standards Draft, subject to change.
  6725.  
  6726.  
  6727.  
  6728.  
  6729.  82                               4 POSIX Open System Environment Services
  6730.  
  6731.  
  6732.  
  6733.  
  6734.  
  6735.  
  6736.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  6737.  
  6738.  _________________________________________________________________________
  6739.  
  6740.  
  6741.  
  6742.  
  6743.  
  6744.  
  6745.  
  6746.  
  6747.  
  6748.  
  6749.  
  6750.  
  6751.  
  6752.  
  6753.  
  6754.  
  6755.  
  6756.  
  6757.  
  6758.  
  6759.  
  6760.  
  6761.  
  6762.  
  6763.  
  6764.  
  6765.  
  6766.  
  6767.  
  6768.  
  6769.  
  6770.  _________________________________________________________________________
  6771.               Figure 4-8  -  Directory Services Architecture
  6772.  
  6773.  
  6774.  4.3.4.1  Application Program Interface Services
  6775.  
  6776.  4.3.4.1.1  Directory Services
  6777.  
  6778.  Directory services allow an application to find the names and addresses
  6779.  of objects and services available to the application.  These services
  6780.  include the ability to:
  6781.  
  6782.      - Look up the name to be used to access a particular service
  6783.  
  6784.      - Look up the address of a named object
  6785.  
  6786.  
  6787.  
  6788.  
  6789.               Copyright (c) 1991 IEEE.  All rights reserved.
  6790.       This is an unapproved IEEE Standards Draft, subject to change.
  6791.  
  6792.  
  6793.  
  6794.  
  6795.  4.3 Network Services                                                   83
  6796.  
  6797.  
  6798.  
  6799.  
  6800.  
  6801.  
  6802.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  6803.  
  6804.  4.3.4.1.2  Application to System Services
  6805.  
  6806.  These are the services requested by the application that are performed by
  6807.  the Application Platform on behalf of the application without the
  6808.  application actually communicating directly with another application.
  6809.  Many of these services may actually connect to some remote application
  6810.  but the details of the connection are left up to the application
  6811.  platform.
  6812.  
  6813.  These services will be provided by a relatively simple high level API.
  6814.  These services include:
  6815.  
  6816.      (1)  File transfer
  6817.  
  6818.      (2)  Remote execution of commands
  6819.  
  6820.      (3)  Electronic mail                                                   e
  6821.  
  6822.      (4)  Remote login
  6823.  
  6824.      (5)  Remote printer access
  6825.  
  6826.      (6)  Network status
  6827.  
  6828.      - The ability to access remote or local systems using remote
  6829.        procedure calls (RPC).  When this type of access is provided,
  6830.        nearly all of the details of the network connection and interaction
  6831.        are masked from the application.
  6832.  
  6833.  4.3.4.1.3  Application to Application Service
  6834.  
  6835.  There are three areas of application to application service requirements:
  6836.  
  6837.      - RPC Services
  6838.  
  6839.      - Simple Network Services
  6840.  
  6841.      - Detailed Network Services
  6842.  
  6843.  The RPC services allow an application to register with the network
  6844.  application platform as the provider for a particular RPC Service.  Once
  6845.  the service has been properly registered, other applications can
  6846.  transparently request services using a subroutine call.  The details of
  6847.  communicating the service request to the application that is registered
  6848.  to provide the service and the return of the response to the requesting
  6849.  application are handled transparently by the Application Platform.
  6850.  
  6851.  Applications making use of RPC services may not even be aware that the
  6852.  service are being provided via an RPC mechanism.
  6853.  
  6854.  
  6855.               Copyright (c) 1991 IEEE.  All rights reserved.
  6856.       This is an unapproved IEEE Standards Draft, subject to change.
  6857.  
  6858.  
  6859.  
  6860.  
  6861.  84                               4 POSIX Open System Environment Services
  6862.  
  6863.  
  6864.  
  6865.  
  6866.  
  6867.  
  6868.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  6869.  
  6870.  The Simple Network Services are application to application services
  6871.  provided using a simple set of interface routines.  These will allow a
  6872.  wide variety of networking applications to be written that do not need to
  6873.  exercise control their network access at a very complex level of detail.
  6874.  
  6875.  In addition, these services should be provided over a wide variety of
  6876.  network transport mechanisms.  Applications written exclusively using the
  6877.  simple services should be portable across a wide variety of networking
  6878.  environments.
  6879.  
  6880.  Applications written using the simple network services may not be able to
  6881.  make use of unique advantages of a particular physical networking scheme.
  6882.  To make use of these network-specific features the Detailed Network
  6883.  Services must be used.
  6884.  
  6885.  The service requirements for the simple network services are intended to
  6886.  be the minimum requirements to write a large subset of network
  6887.  applications.
  6888.  
  6889.  The Simple Network Services sacrifice the capability to control every
  6890.  detail of the network services in the interest of portability across
  6891.  networking environments and applications simplicity.
  6892.  
  6893.  The Detailed Network Services API allows the application to control over
  6894.  much more detail of the network services.  In addition, using the
  6895.  Detailed Network Services an application may be able to make use of
  6896.  unique networking capabilities available in particular networking
  6897.  environments.
  6898.  
  6899.  4.3.4.1.3.1  _R_P_C__S_e_r_v_i_c_e_s
  6900.  
  6901.  These service requirements include the ability:
  6902.  
  6903.      - To register as an RPC service provider
  6904.  
  6905.      - To wait for incoming requests
  6906.  
  6907.      - For an application using RPC services to control parameters such as
  6908.        timeout
  6909.  
  6910.  4.3.4.1.3.2  _S_i_m_p_l_e__N_e_t_w_o_r_k__S_e_r_v_i_c_e_s
  6911.  
  6912.  The services provided at the simple network interface are:
  6913.  
  6914.      (1)  Name resolution
  6915.  
  6916.      (2)  Connection oriented services
  6917.  
  6918.  
  6919.  
  6920.  
  6921.               Copyright (c) 1991 IEEE.  All rights reserved.
  6922.       This is an unapproved IEEE Standards Draft, subject to change.
  6923.  
  6924.  
  6925.  
  6926.  
  6927.  4.3 Network Services                                                   85
  6928.  
  6929.  
  6930.  
  6931.  
  6932.  
  6933.  
  6934.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  6935.  
  6936.            - The ability to indicate willingness to accept incoming
  6937.              connections
  6938.  
  6939.            - Establishing and destroying connections
  6940.  
  6941.            - Data transfer over connections
  6942.  
  6943.               +o Read
  6944.  
  6945.               +o Read with timeout
  6946.  
  6947.               +o Write
  6948.  
  6949.               +o Write with timeout
  6950.  
  6951.            - Simple error handling
  6952.  
  6953.               +o Connection dropped notification
  6954.  
  6955.               +o Connection read failure
  6956.  
  6957.               +o Connection write failure
  6958.  
  6959.            - The ability to close a connection
  6960.  
  6961.               +o Unconditionally
  6962.  
  6963.               +o Only after all data has been received
  6964.  
  6965.      (3)  Connectionless services
  6966.  
  6967.            - The ability to indicate willingness to accept incoming
  6968.              requests
  6969.  
  6970.            - The ability to send requests
  6971.  
  6972.               +o With acknowledgment
  6973.  
  6974.               +o Without acknowledgment
  6975.  
  6976.               +o Specified timeout
  6977.  
  6978.            - The ability to receive requests
  6979.  
  6980.               +o Wait unconditionally
  6981.  
  6982.               +o Wait with timeout
  6983.  
  6984.  
  6985.  
  6986.  
  6987.               Copyright (c) 1991 IEEE.  All rights reserved.
  6988.       This is an unapproved IEEE Standards Draft, subject to change.
  6989.  
  6990.  
  6991.  
  6992.  
  6993.  86                               4 POSIX Open System Environment Services
  6994.  
  6995.  
  6996.  
  6997.  
  6998.  
  6999.  
  7000.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  7001.  
  7002.            - The ability to query as to whether any requests are available
  7003.  
  7004.            - Simple event notification
  7005.  
  7006.               +o Lost request
  7007.  
  7008.               +o Request acknowledgment
  7009.  
  7010.            - Simple error handling
  7011.  
  7012.               +o General network failure
  7013.  
  7014.      (4)  Support for server applications
  7015.  
  7016.            - The ability to register as the provider for a service
  7017.  
  7018.      (5)  Simple status inquiry
  7019.  
  7020.            - General network availability
  7021.  
  7022.  4.3.4.1.3.3  _D_e_t_a_i_l_e_d__N_e_t_w_o_r_k__S_e_r_v_i_c_e__R_e_q_u_i_r_e_m_e_n_t_s
  7023.  
  7024.  The services provided at the Detailed Networking Interface include all of
  7025.  the service requirements in the Simple Network Service Requirements plus
  7026.  the following abilities:
  7027.  
  7028.      (1)  Query the network services to get detailed information about
  7029.           network configuration and status
  7030.  
  7031.      (2)  Specify performance metrics
  7032.  
  7033.      (3)  Control routing
  7034.  
  7035.      (4)  Select between different network protocols
  7036.  
  7037.      (5)  Negotiate capabilities
  7038.  
  7039.            - Required capabilities
  7040.  
  7041.            - Optional capabilities
  7042.  
  7043.            - Determine the results of the negotiation
  7044.  
  7045.      (6)  Information with different priorities
  7046.  
  7047.      (7)  Request and process extended event notification
  7048.  
  7049.      (8)  Request and process extended error recovery including allowing
  7050.           the application to completely control error recovery.
  7051.  
  7052.  
  7053.               Copyright (c) 1991 IEEE.  All rights reserved.
  7054.       This is an unapproved IEEE Standards Draft, subject to change.
  7055.  
  7056.  
  7057.  
  7058.  
  7059.  4.3 Network Services                                                   87
  7060.  
  7061.  
  7062.  
  7063.  
  7064.  
  7065.  
  7066.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  7067.  
  7068.      (9)  Make full use of network resources for performance critical
  7069.           applications
  7070.  
  7071.  This should provide the application with the ability to completely
  7072.  control connection oriented services and connectionless services.
  7073.  
  7074.  4.3.4.1.4  Data Representation Services
  7075.  
  7076.      - The ability to access all of the data representation and format
  7077.        conversion services to allow an application to communicate with a
  7078.        wide variety of computer systems.
  7079.  
  7080.  4.3.4.1.5  Distributed System Services
  7081.  
  7082.  The services provided in this area include the ability to:
  7083.  
  7084.      - Identify available resources in a distributed system
  7085.  
  7086.      - Dynamically make use of the resources in a distributed system.
  7087.  
  7088.      - Access files regardless of the physical location of the files.
  7089.  
  7090.      - Have reliable time services across all of the resources of the
  7091.        distributed system.
  7092.  
  7093.  4.3.4.1.6  Network Management Services
  7094.  
  7095.  The services provided at the Network Management API are abilities to:
  7096.  
  7097.      (1)  Manage
  7098.  
  7099.            - Network objects
  7100.  
  7101.            - Network relationships
  7102.  
  7103.            - Network security
  7104.  
  7105.      (2)  Monitor and report on
  7106.  
  7107.            - Network events
  7108.  
  7109.            - Network service alarms
  7110.  
  7111.            - Network security alarms
  7112.  
  7113.      (3)  Log
  7114.  
  7115.            - Network events
  7116.  
  7117.  
  7118.  
  7119.               Copyright (c) 1991 IEEE.  All rights reserved.
  7120.       This is an unapproved IEEE Standards Draft, subject to change.
  7121.  
  7122.  
  7123.  
  7124.  
  7125.  88                               4 POSIX Open System Environment Services
  7126.  
  7127.  
  7128.  
  7129.  
  7130.  
  7131.  
  7132.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  7133.  
  7134.            - Network availability
  7135.  
  7136.            - Network load
  7137.  
  7138.            - Network performance
  7139.  
  7140.      (4)  Test network performance and reliability
  7141.  
  7142.  4.3.4.2  External Environment Interface Services
  7143.  
  7144.  At the external interface, there are several types of services that are
  7145.  provided.  These include:
  7146.  
  7147.      - Data transfer and connectivity
  7148.  
  7149.      - Routing and relay services
  7150.  
  7151.      - Services provided by the application platform directly to an
  7152.        incoming connection
  7153.  
  7154.      - Network management and security services provided to other networks
  7155.        and other nodes within a network
  7156.  
  7157.      - Network management user interface
  7158.  
  7159.  This clause does not address the user interface to the general network
  7160.  services such as file transfer or mail sending.  That is covered by the
  7161.  command interface clause, 4.10.  As stated above, this clause covers the
  7162.  network management user interface.
  7163.  
  7164.  In addition, there are a number of other areas of external interface
  7165.  requirements that are not covered in this guide.  They include:
  7166.  
  7167.      - Physical network interface connections
  7168.  
  7169.      - Electrical specifications for network connections
  7170.  
  7171.      - Specifications for physical network construction
  7172.  
  7173.                                                                             e
  7174.  
  7175.  4.3.4.2.1  Data Transfer and Connectivity
  7176.  
  7177.  Services required at the EEI in the area of data transfer and
  7178.  connectivity include the ability to:
  7179.  
  7180.      - Connect and interoperate with other standards-based systems using
  7181.        standards-based protocols including X.25 and OSI.
  7182.  
  7183.  
  7184.  
  7185.               Copyright (c) 1991 IEEE.  All rights reserved.
  7186.       This is an unapproved IEEE Standards Draft, subject to change.
  7187.  
  7188.  
  7189.  
  7190.  
  7191.  4.3 Network Services                                                   89
  7192.  
  7193.  
  7194.  
  7195.  
  7196.  
  7197.  
  7198.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  7199.  
  7200.      - Connect and interoperate with systems using de facto networking      e
  7201.        standards such as TCP/IP and UUCP.                                   e
  7202.  
  7203.      - Connect and interoperate with personal computer and workstation
  7204.        networks.
  7205.  
  7206.      - Interoperate with industry leading networking interfaces.
  7207.  
  7208.  4.3.4.2.2  Routing and Relay Services
  7209.  
  7210.  Services required at the EEI in the area of routing and relay
  7211.  capabilities include the ability to:
  7212.  
  7213.      (1)  Relay information through a system between like networks.
  7214.  
  7215.      (2)  Gateway information through a system between unlike networks at
  7216.           a data transfer level.  Examples of this type of gateway
  7217.           include:
  7218.  
  7219.            - Local Area Network (LAN) to LAN
  7220.  
  7221.            - LAN to Wide Area Network (WAN)
  7222.  
  7223.            - WAN to Global Area Network (GAN)
  7224.  
  7225.            - Networks to point-to-point connections
  7226.  
  7227.            - Point-to-point connections to networks
  7228.  
  7229.      (3)  Convert information from one format to another when transferring
  7230.           between unlike computer systems or networks.  Information that
  7231.           may need to be converted includes:
  7232.  
  7233.            - Mail messages
  7234.  
  7235.            - File contents
  7236.  
  7237.            - Printer file contents
  7238.  
  7239.  The primary requirement for the routing and gateway services is to make
  7240.  any necessary relays and gateways transparent to the applications and
  7241.  systems using the network.  This requires complete gateways and relays.
  7242.  
  7243.  4.3.4.2.3  Services Provided by the Application Platform at the EEI
  7244.  
  7245.  These EEI services are those provided to incoming connections that are
  7246.  not directed to an end-user application or server.  These incoming
  7247.  connections are directed to standard services that can be provided by
  7248.  systems.  These services include:
  7249.  
  7250.  
  7251.               Copyright (c) 1991 IEEE.  All rights reserved.
  7252.       This is an unapproved IEEE Standards Draft, subject to change.
  7253.  
  7254.  
  7255.  
  7256.  
  7257.  90                               4 POSIX Open System Environment Services
  7258.  
  7259.  
  7260.  
  7261.  
  7262.  
  7263.  
  7264.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  7265.  
  7266.      - Remote logon and terminal emulation
  7267.  
  7268.      - Remote execution of commands
  7269.  
  7270.      - File transfer services
  7271.  
  7272.      - Remote authentication
  7273.  
  7274.      - Remote data access
  7275.  
  7276.      - Remote status information
  7277.  
  7278.      - Mail delivery services
  7279.  
  7280.      - Directory services
  7281.  
  7282.  To access these services each user does not need to provide an
  7283.  application on the remote host.  Simply by connecting to the service, the
  7284.  application platform will provide the service.
  7285.  
  7286.  
  7287.  4.3.5  Standards, Specifications, and Gaps
  7288.  
  7289.  4.3.5.1  Current Standards
  7290.  
  7291.  Table 4-4 lists standards that address the services outlined in this       e
  7292.  clause.  This table includes international standards, emerging standards   e
  7293.  coming from national and international bodies, and other current           e
  7294.  standards that meet gaps in the service requirements.  Public              e
  7295.  specifications are cited to fill gaps only when there are no existing or   e
  7296.  emerging standards to meet the service requirements.                       e
  7297.  
  7298.  _I_S_O__P_r_o_t_o_c_o_l__S_t_a_c_k__S_t_a_n_d_a_r_d_s                                               e
  7299.  
  7300.  Figure 4-9 describes how the ISO protocol standards cited in this guide    e
  7301.  fit together.                                                              e
  7302.  
  7303.  4.3.5.2  Emerging Standards
  7304.  
  7305.  _I_E_E_E__P_1_0_0_3_._1_2                                                              e
  7306.  
  7307.  This group is developing a standard that provides networking application   e
  7308.  program interfaces.  P1003.12 contains the specification for a Simple      e
  7309.  Network Interface (SNI) and a Detailed Network Interface (DNI).  The       e
  7310.  Simple Network Interface is designed to usable on a number of different    e
  7311.  transport services, ranging from ISO networks to completely proprietary    e
  7312.  networks, without requiring application changes.  To do this, the SNI has  e
  7313.  a very limited set of services with minimal parameters.  The Detailed      e
  7314.  Network Interface is also designed to be implementable across a wide       e
  7315.  
  7316.  
  7317.               Copyright (c) 1991 IEEE.  All rights reserved.
  7318.       This is an unapproved IEEE Standards Draft, subject to change.
  7319.  
  7320.  
  7321.  
  7322.  
  7323.  4.3 Network Services                                                   91
  7324.  
  7325.  
  7326.  
  7327.  
  7328.  
  7329.  
  7330.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  7331.  
  7332.  
  7333.                     Table 4-4  -  Networking Standards
  7334.  __________________________________________________________________________________________________________________________________________________
  7335.           Service            Type                Specification                Subclause e
  7336.  _______________________________________________________________________________________e
  7337.  
  7338.  Directory Services           S     X.500                                     4.3.5.1   e ee
  7339.                               E     IEEE P1003.17 X.500 API                   4.3.5.2   e ee
  7340.  
  7341.  Message Handling             S     ISO 10021 X.400                           4.3.5.1   e ee
  7342.                               E     IEEE P1224 X.400 API                      4.3.5.2   e ee
  7343.  
  7344.  File Transfer                S     ISO 857, ISO 8613, ISO 10026, ISO 8650,   4.3.5.1   e ee
  7345.                                     ISO 8652, ISO 8653, ISO 9735, ISO 9594              e
  7346.                               E     IEEE P1238 FTAM API                       4.3.5.2   e ee
  7347.  
  7348.  Print Services               E     X3H3                                      4.3.5.2   e ee
  7349.  
  7350.  Application Services                                                                   e
  7351.        Connectionless         S     ISO 8649-2, ISO 8650-1                    4.3.5.1   e ee
  7352.        Connection Oriented    S     ISO 10040, ISO 10164, ISO 10165,          4.3.5.1   e ee
  7353.                                     ISO 9595, ISO 9596, ISO 9579                        e
  7354.                               E     IEEE P1238.1 ASCE API                     4.3.5.2   e ee
  7355.  
  7356.  Data Representation          S     ISO 8823 Presentation Protocol            4.3.5.1   e ee
  7357.                               S     ISO 9576, ISO 8824, ISO 8825 ASN.1        4.3.5.1   e ee
  7358.  
  7359.  Protocols                                                                              e
  7360.        Session                S     ISO 8327, ISO 9548                        4.3.5.1   e ee
  7361.        Transport              S     CCITT X.214, X.224 (TP0)                  4.3.5.1   e ee
  7362.                               S     ISO 8072, ISO 8602 (TP4)                  4.3.5.1   e ee
  7363.                               E     IEEE P1003.12 Transport API ??            4.3.5.2   e ee
  7364.        Network                S     CCITT X.25 PLP, ISO 8208                  4.3.5.1   e ee
  7365.                               S     ISO 8348 AD1, ISO 8473                    4.3.5.1   e ee
  7366.        Data Link              S     ISO 7776 HDLC/LAPB                        4.3.5.1   e ee
  7367.                               S     ISO 8802-2 Logical Link Control           4.3.5.1   e ee
  7368.        Physical               S     EIA RS-232                                4.3.5.1   e ee
  7369.                               G     MIL-STD-114A                              4.3.5.3   e ee
  7370.                               S     ISO 8802-3 (CSMA/CD)                      4.3.5.1   e ee
  7371.                                     ISO 8802-4 (Token Bus),                             e
  7372.                                     ISO 8802-5 (Token Ring)                             e
  7373.  _________________________________________________________________________
  7374.  
  7375.  
  7376.  
  7377.  
  7378.  
  7379.  
  7380.  
  7381.  
  7382.  
  7383.               Copyright (c) 1991 IEEE.  All rights reserved.
  7384.       This is an unapproved IEEE Standards Draft, subject to change.
  7385.  
  7386.  
  7387.  
  7388.  
  7389.  92                               4 POSIX Open System Environment Services
  7390.  
  7391.  
  7392.  
  7393.  
  7394.  
  7395.  
  7396.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  7397.  
  7398.  
  7399.                Table 4-4 - Networking Standards (_c_o_n_c_l_u_d_e_d)
  7400.  _________________________________________________________________________  e
  7401.            Service             Type              Specification               Subclausee
  7402.  _____________________________________________________________________________________e
  7403.  
  7404.  Network Management             S     ISO 9596                               4.3.5.1  e       ee
  7405.                                 S     ISO 9593                               4.3.5.1  e       ee
  7406.                                 S     ISO/NMF                                4.3.5.1  e       ee
  7407.  
  7408.  Network Security               S     ISO 803.10                             4.3.5.1  e       ee
  7409.                                 E     X3T4                                   4.3.5.2  e       ee
  7410.                                 E     SIRS 233                               4.3.5.2  e       ee
  7411.  
  7412.  Distributed System Services    S     ISO DP                                 4.3.5.1  e       ee
  7413.                                 E     IEEE P1003.8 TFA API                   4.3.5.2  e       ee
  7414.  
  7415.  Remote Procedure Call (RPC)    E     ECMA 127                               4.3.5.2  e       ee
  7416.                                 E     ISO 10148                              4.3.5.2  e       ee
  7417.                                 E     IEEE P1237 API                         4.3.5.2  e       ee
  7418.  
  7419.  Protocol-Independent                                                                 e
  7420.  Network Interface              E     IEEE P1003.12 SNI API                  4.3.5.2  e       ee
  7421.  
  7422.  Interoperable Networking                                                             e
  7423.        Directory Services       G     RFC-1034 Domain Naming                 4.3.5.3  e       ee
  7424.                                 E     IEEE P1003.17 Directory Services API   4.3.5.2  e       ee
  7425.        File Transfer            G     MIL-STD-1780 (TCP/IP FTP)              4.3.5.3  e       ee
  7426.        Message Handling         G     MIL-STD-1781 (TCP/IP SMTP)             4.3.5.3  e       ee
  7427.        Virtual Terminal         G     MIL-STD-1782 (TCP/IP Telnet)           4.3.5.3  e       ee
  7428.        Protocols                G     MIL-STD-1777 (IP)                      4.3.5.3  e       ee
  7429.                                 G     MIL-STD-1778 (TCP)                     4.3.5.3  e       ee
  7430.                                 E     IEEE P1003.12 API                      4.3.5.2  e       ee
  7431.  
  7432.  Mainframe Networking           E     IEEE P1003.12 API                      4.3.5.2  e       ee
  7433.                                 G     X/Open CPIC                            4.3.5.3  e       ee
  7434.  
  7435.  PC Networking                  G     X/Open PCI:SMB                         4.3.5.3  e       ee
  7436.  
  7437.  __________________________________________________________________________________________________________________________________________________
  7438.  
  7439.  
  7440.  
  7441.  
  7442.  
  7443.  
  7444.  
  7445.  
  7446.  
  7447.  
  7448.  
  7449.               Copyright (c) 1991 IEEE.  All rights reserved.
  7450.       This is an unapproved IEEE Standards Draft, subject to change.
  7451.  
  7452.  
  7453.  
  7454.  
  7455.  4.3 Network Services                                                   93
  7456.  
  7457.  
  7458.  
  7459.  
  7460.  
  7461.  
  7462.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  7463.  
  7464.  _________________________________________________________________________
  7465.  
  7466.  
  7467.  
  7468.  
  7469.  
  7470.  
  7471.  
  7472.  
  7473.  
  7474.  
  7475.  
  7476.  
  7477.  
  7478.  
  7479.  
  7480.  
  7481.  
  7482.  
  7483.  
  7484.  
  7485.  
  7486.  
  7487.  
  7488.  
  7489.  
  7490.  
  7491.  
  7492.  
  7493.  
  7494.  
  7495.  
  7496.  
  7497.  
  7498.  
  7499.  
  7500.  
  7501.  
  7502.  
  7503.  
  7504.  
  7505.  _________________________________________________________________________
  7506.                Figure 4-9  -  OSI Network Services Standards
  7507.  
  7508.  
  7509.  
  7510.  
  7511.  
  7512.  
  7513.  
  7514.  
  7515.               Copyright (c) 1991 IEEE.  All rights reserved.
  7516.       This is an unapproved IEEE Standards Draft, subject to change.
  7517.  
  7518.  
  7519.  
  7520.  
  7521.  94                               4 POSIX Open System Environment Services
  7522.  
  7523.  
  7524.  
  7525.  
  7526.  
  7527.  
  7528.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  7529.  
  7530.  variety of network protocols.  However, DNI allows applications to access  e
  7531.  the low-level details of each of the different network protocols.  As a    e
  7532.  result, programs written using DNI may be portable between environments    e
  7533.  that use the same underlying network protocols.                            e
  7534.  
  7535.  Applications can be written using a combination of the SNI and DNI         e
  7536.  interfaces.  The engineers designing the applications can make             e
  7537.  portability tradeoffs as the applications are developed.                   e
  7538.  
  7539.  _I_E_E_E__P_1_0_0_3_._1_7                                                              e
  7540.  
  7541.  This group is developing an API standard that will enable applications to  e
  7542.  access directory services.  Backwards compatibility with existing name     e
  7543.  resolution services, such as TCP/IP, is included in the design of the      e
  7544.  P1003.17 interface.  P1003.17 can also use the following directory         e
  7545.  services:                                                                  e
  7546.  
  7547.      - X.500                                                                e
  7548.  
  7549.      - TCP/IP                                                               e
  7550.  
  7551.      - IEEE P1003.17 System Management Name Space                           e
  7552.  
  7553.      - Others                                                               e
  7554.  
  7555.  _I_E_E_E__P_1_2_3_8                                                                 e
  7556.  
  7557.  This group is developing an API for connection-oriented Application Layer  e
  7558.  services.  It establishes a specification methodology and defines an API   e
  7559.  to:                                                                        e
  7560.  
  7561.      - OSI Association Control Service Element (ACSE) services and          e
  7562.  
  7563.      - common support functions for OSI connection-oriented protocol APIs.  e
  7564.  
  7565.  The specification is operating system and language neutral; POSIX and C-   e
  7566.  language bindings are provided.  Further, it is intended to be used as     e
  7567.  the basis for the connection management interface for the future           e
  7568.  Application Service Elements (ASE) such as the File Transfer, Access, and  e
  7569.  Management (FTAM) API.                                                     e
  7570.  
  7571.  _I_E_E_E__P_1_2_3_8_._1                                                               e
  7572.  
  7573.  This group is developing an API for interfacing with the FTAM application  e
  7574.  layer element.  It is standardizing an X.400 API and a companion OSI       e
  7575.  Object Management API, based on the X.400 API and an OSI Management API    e
  7576.  developed by the X.400 API Association and X/Open.  The X.400 API          e
  7577.  consists of two parts:  an X.400 application API and an X.400 gateway      e
  7578.  API.  These APIs were developed based on the 1988 CCITT X.400 series of    e
  7579.  
  7580.  
  7581.               Copyright (c) 1991 IEEE.  All rights reserved.
  7582.       This is an unapproved IEEE Standards Draft, subject to change.
  7583.  
  7584.  
  7585.  
  7586.  
  7587.  4.3 Network Services                                                   95
  7588.  
  7589.  
  7590.  
  7591.  
  7592.  
  7593.  
  7594.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  7595.  
  7596.  recommendations.  The X.400 API and Object Management API are separate     e
  7597.  documents.                                                                 e
  7598.  
  7599.  The purpose of the X.400 API is to provide standard interfaces supporting  e
  7600.  the development of applications that are users of the message transfer     e
  7601.  system, and gateways that incorporate or use X.400 mail functionality;     e
  7602.  this includes gateways between X.400 mail networks and proprietary mail    e
  7603.  systems.                                                                   e
  7604.  
  7605.  The purpose of the companion OSI Object Management API is to provide a     e
  7606.  standard interface supporting the manipulation of complex arguments and    e
  7607.  parameters used by the X.400 and Directory Services APIs.  The scope of    e
  7608.  the OSI Object Management API is to define an ASN.1 Object Management API  e
  7609.  for use in conjunction with, but otherwise independent of, the X.400 and   e
  7610.  Directory Services APIs that are currently being standardized.             e
  7611.  
  7612.  4.3.5.3  Gaps in Available Standards                                       e
  7613.  
  7614.  This subclause describes the standards that are cited to satisfy           e
  7615.  identified service requirements that are not satisfied by any existing or  e
  7616.  emerging standard.                                                         e
  7617.  
  7618.  _I_n_t_e_r_o_p_e_r_a_b_l_e__N_e_t_w_o_r_k_i_n_g__S_t_a_n_d_a_r_d_s                                         e
  7619.  
  7620.  This set of protocol standards is the traditional TCP/IP suite of          e
  7621.  standards, which are currently widely available on many computer           e
  7622.  platforms and operating systems.                                           e
  7623.  
  7624.  This group of specifications includes:                                     e
  7625.  
  7626.     TCP/IP         MIL-STD-1777, MIL-STD-1778                               e
  7627.  
  7628.     TELNET         MIL-STD-1782                                             e
  7629.  
  7630.     FTP            MIL-STD-1780                                             e
  7631.  
  7632.     SMTP           MIL-STD-1781                                             e
  7633.  
  7634.  While these protocols are not expected to be standardized at any higher    e
  7635.  level than the MIL-STD level shown, it will be necessary for open systems  e
  7636.  to interoperate with these standards in a backwards-compatibility mode     e
  7637.  for some time.                                                             e
  7638.  
  7639.  _L_o_w__C_o_s_t__W_i_d_e__A_r_e_a__N_e_t_w_o_r_k_i_n_g                                              e
  7640.  
  7641.  The UUCP (UNIX-to-UNIX Copy Protocol) services and commands, for           e
  7642.  electronic mail and file copying, which are traditionally included in      e
  7643.  UNIX and UNIX-like systems are not addressed by any standards effort.      e
  7644.  Among other reasons, UUCP is not currently being addressed because of the  e
  7645.  
  7646.  
  7647.               Copyright (c) 1991 IEEE.  All rights reserved.
  7648.       This is an unapproved IEEE Standards Draft, subject to change.
  7649.  
  7650.  
  7651.  
  7652.  
  7653.  96                               4 POSIX Open System Environment Services
  7654.  
  7655.  
  7656.  
  7657.  
  7658.  
  7659.  
  7660.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  7661.  
  7662.  inability of the POSIX groups to decide whether the UUCP services and      e
  7663.  commands should be standardized in the POSIX.2 Group (since UUCP is a      e
  7664.  traditional UNIX service with traditional command interfaces) or in the    e
  7665.  networking groups (since UUCP is an electronic mail and file copying       e
  7666.  facility that works on networks).                                          e
  7667.  
  7668.  
  7669.  4.3.6  OSE Cross-Category Services                                         e
  7670.  
  7671.  These EEI Services allow remote systems to be managed and monitored.       e
  7672.  Network management services include the ability to:                        e
  7673.  
  7674.      - Get network status information                                       e
  7675.  
  7676.      - Get network configuration information                                e
  7677.  
  7678.      - Test network functionality                                           e
  7679.  
  7680.      - Make network configuration changes                                   e
  7681.  
  7682.  The security services allow the system management to control access to     e
  7683.  system resources and system information.  Security services include:       e
  7684.  
  7685.      - Protect the system from intruders                                    e
  7686.  
  7687.      - Provide selective access to sensitive system resources               e
  7688.  
  7689.      - Manage the network security                                          e
  7690.  
  7691.  See also 5.3.                                                              e
  7692.  
  7693.  
  7694.  4.3.7  Related Standards                                                   e
  7695.  
  7696.  ISO 8587, Distributed Transaction Services; see 4.6.                       e
  7697.  
  7698.  
  7699.  
  7700.  
  7701.  
  7702.  
  7703.  
  7704.  
  7705.  
  7706.  
  7707.  
  7708.  
  7709.  
  7710.  
  7711.  
  7712.  
  7713.               Copyright (c) 1991 IEEE.  All rights reserved.
  7714.       This is an unapproved IEEE Standards Draft, subject to change.
  7715.  
  7716.  
  7717.  
  7718.  
  7719.  4.3 Network Services                                                   97
  7720.  
  7721.  
  7722.  
  7723.  
  7724.  
  7725.  
  7726.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  7727.  
  7728.  
  7729.  
  7730.  
  7731.  
  7732.  
  7733.  
  7734.  
  7735.  
  7736.  
  7737.  
  7738.  
  7739.  
  7740.  
  7741.  
  7742.  
  7743.  
  7744.  
  7745.  
  7746.  
  7747.  
  7748.  
  7749.  
  7750.  
  7751.  
  7752.  
  7753.  
  7754.  
  7755.  
  7756.  
  7757.  
  7758.  
  7759.  
  7760.  
  7761.  
  7762.  
  7763.  
  7764.  
  7765.  
  7766.  
  7767.  
  7768.  
  7769.  
  7770.  
  7771.  
  7772.  
  7773.  
  7774.  
  7775.  
  7776.  
  7777.  
  7778.  
  7779.               Copyright (c) 1991 IEEE.  All rights reserved.
  7780.       This is an unapproved IEEE Standards Draft, subject to change.
  7781.  
  7782.  
  7783.  
  7784.  
  7785.  98                               4 POSIX Open System Environment Services
  7786.  
  7787.  
  7788.  
  7789.  
  7790.  
  7791.  
  7792.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  7793.  
  7794.  4.4  Database Services
  7795.  
  7796.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _S_a_n_d_r_a _S_w_e_a_r_i_n_g_e_n
  7797.  
  7798.  
  7799.  4.4.1  Overview and Rationale
  7800.  
  7801.  This subclause describes an overview of an architectural framework for
  7802.  discussing database management.  It also describes the services provided
  7803.  to application programs and users, and it describes standards, current
  7804.  and emerging, that standardize those database services.
  7805.  
  7806.  Database management is an important component of the POSIX Open System
  7807.  Environment; in a large class of application programs, especially those
  7808.  used in business, database access through a database management system
  7809.  plays a key role.  For portability and interoperability, an application
  7810.  using a database must be isolated from the hardware and software
  7811.  retrieval methods as much as possible.  Otherwise the application must
  7812.  have the data manipulation capability coded in its own programs.  This
  7813.  might be done if performance is a key issue and the data is very unique.
  7814.  The cost is portability and interoperability.
  7815.  
  7816.                                                                             e
  7817.  
  7818.  
  7819.  4.4.2  Scope
  7820.  
  7821.  Included within the component of database management are various
  7822.  structured ``data models,'' including indexed files and network,
  7823.  relational, semantic, and object-oriented databases.  Specifically
  7824.  excluded from consideration are services for accessing data that is not
  7825.  part of a database.  This subclause discusses database management
  7826.  services from both the application program and user points of view.
  7827.  
  7828.  Database services provided to application programs by this component, for
  7829.  example, include the ability to create, alter, or drop tables, records,
  7830.  and fields and the ability to insert, select, and update data included in
  7831.  the structures above.
  7832.  
  7833.  Included within this component are also utility capabilities such as
  7834.  database administration services.
  7835.  
  7836.                                                                             e
  7837.  
  7838.  
  7839.  
  7840.  
  7841.  
  7842.  
  7843.  
  7844.  
  7845.               Copyright (c) 1991 IEEE.  All rights reserved.
  7846.       This is an unapproved IEEE Standards Draft, subject to change.
  7847.  
  7848.  
  7849.  
  7850.  
  7851.  4.4 Database Services                                                  99
  7852.  
  7853.  
  7854.  
  7855.  
  7856.  
  7857.  
  7858.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  7859.  
  7860.  4.4.3  Reference Model
  7861.  
  7862.  4.4.3.1  Reference Model
  7863.  
  7864.  In this subclause, the conventional view of Database Management is
  7865.  related to the POSIX reference model described earlier.
  7866.  
  7867.  The application programmer's view of the database model is introduced
  7868.  first.  Quite simply, an application program, through a _D_a_t_a_b_a_s_e _A_P_I,
  7869.  requests database services.  For convenience in the following discussion,
  7870.  the agent responsible for providing those services is called the _D_a_t_a_b_a_s_e
  7871.  _M_a_n_a_g_e_r.  The database manager is responsible for providing the
  7872.  application access to the _D_a_t_a_b_a_s_e.  See Figure 4-10.
  7873.  
  7874.  _________________________________________________________________________
  7875.  
  7876.  
  7877.  
  7878.  
  7879.  
  7880.  
  7881.  
  7882.  
  7883.  
  7884.  
  7885.  
  7886.  
  7887.  
  7888.  
  7889.  
  7890.  
  7891.  
  7892.  
  7893.  
  7894.  _________________________________________________________________________
  7895.               Figure 4-10  -  The Traditional Database Model
  7896.  
  7897.  
  7898.  This figure also demonstrates the concept of a _D_a_t_a_b_a_s_e _U_t_i_l_i_t_y _P_r_o_g_r_a_m:
  7899.  one or more special application programs, usually provided by a database
  7900.  vendor, that perform utility services on the database.  Such utilities
  7901.  might reorganize the database, recover the database after a system
  7902.  failure, etc.
  7903.  
  7904.  The traditional database model can be incorporated into the POSIX
  7905.  reference model, as in Figure 4-11.  This depiction of the model shows
  7906.  that the database manager is really just part of the overall POSIX Open
  7907.  System Environment and is available to the application through the POSIX
  7908.  OSE API.
  7909.  
  7910.  
  7911.               Copyright (c) 1991 IEEE.  All rights reserved.
  7912.       This is an unapproved IEEE Standards Draft, subject to change.
  7913.  
  7914.  
  7915.  
  7916.  
  7917.  100                              4 POSIX Open System Environment Services
  7918.  
  7919.  
  7920.  
  7921.  
  7922.  
  7923.  
  7924.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  7925.  
  7926.  _________________________________________________________________________
  7927.  
  7928.  
  7929.  
  7930.  
  7931.  
  7932.  
  7933.  
  7934.  
  7935.  
  7936.  
  7937.  
  7938.  
  7939.  
  7940.  
  7941.  
  7942.  
  7943.  
  7944.  
  7945.  
  7946.  
  7947.  
  7948.  
  7949.  _________________________________________________________________________
  7950.               Figure 4-11  -  POSIX Database Reference Model
  7951.  
  7952.  
  7953.  The model depicted in Figure 4-11.  is sufficient to describe an
  7954.  application developer's view of the POSIX OSE API in general, and the
  7955.  database API specifically.  The four lines labeled ``Database API''
  7956.  represent the Database Applications Program Interface services, which are
  7957.  discussed in 4.4.4.1.
  7958.  
  7959.  4.4.3.2  Implementation Aspects
  7960.  
  7961.  Some real world considerations of the POSIX Reference Model were
  7962.  discussed in 3.6.  One of the real-world approaches described is
  7963.  ``layering.''  Note that in the marketplace, Database Managers are often
  7964.  independently purchasable components that are effectively implemented as
  7965.  layers.  Another consideration is Database Manager portability.  It is
  7966.  not a requirement that a a database manager sit on top of a POSIX OSE
  7967.  API, but there is very important value to the user in terms of
  7968.  portability if the database manager implementation does indeed sit on a
  7969.  POSIX API.  This means that the database manager itself is portable.  It
  7970.  should be noted that there will probably be implementations available of
  7971.  database managers that do not, in fact, sit on top of a POSIX API (or sit
  7972.  only partially on top of a POSIX API), that nonetheless provide the user
  7973.  the same database API.  Such an implementation, using both POSIX API
  7974.  services and non-POSIX API services was described as ``expansion'' (see
  7975.  
  7976.  
  7977.               Copyright (c) 1991 IEEE.  All rights reserved.
  7978.       This is an unapproved IEEE Standards Draft, subject to change.
  7979.  
  7980.  
  7981.  
  7982.  
  7983.  4.4 Database Services                                                 101
  7984.  
  7985.  
  7986.  
  7987.  
  7988.  
  7989.  
  7990.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  7991.  
  7992.  3.6.1).  Note that even though the model is drawn with only a single
  7993.  database manager, that does not imply that there may only be a single
  7994.  database manager available to an application.  In fact, the coexistence
  7995.  of several database managers on the same system is consistent with this
  7996.  model, as is the ability of a single application to access two or more
  7997.  different database managers.  The following extensions to the above model
  7998.  are specifically accommodated:
  7999.  
  8000.      - There may be more than one database API.  For example, there may be
  8001.        an ``SQL'' API and an ``ISAM'' API.
  8002.  
  8003.      - There may be more than one database manager implementation for each
  8004.        different API.  (For example, by two competing database vendors.)
  8005.  
  8006.      - Applications may access more than one database manager.
  8007.  
  8008.  This document has not described how a database manager is implemented in
  8009.  a POSIX Open System Environment, nor is it within the scope of this
  8010.  document to do so.  It should be noted, though, that this model is very
  8011.  general and does not constrain the implementor.  This model supports a
  8012.  number of varying real world implementation techniques, including:
  8013.  
  8014.      - Application and database manager linked into a single process.
  8015.  
  8016.      - Database manager consisting of more than one process.
  8017.  
  8018.      - Database manager consisting of a client part linked into the
  8019.        application process and a server part running as a process on the
  8020.        same or another system.
  8021.  
  8022.  
  8023.  4.4.4  Service Requirements
  8024.  
  8025.  The Database Manager described in the previous subclause provides
  8026.  services to the Application Program via the Database API, and the
  8027.  Database Utility Programs provide other services (e.g., to human users
  8028.  such as a ``Database Administrator'').  This subclause describes the
  8029.  service requirements of all service users of the system.  It is intended
  8030.  to be a complete list of service requirements rather than examples.
  8031.  Database Services are the specialized data services required to create,
  8032.  access, and manage databases located on a processor node.  Users of these  e
  8033.  services include end users and those charged with the ongoing management
  8034.  of the information processing and database infrastructure.
  8035.  
  8036.  
  8037.  
  8038.  
  8039.  
  8040.  
  8041.  
  8042.  
  8043.               Copyright (c) 1991 IEEE.  All rights reserved.
  8044.       This is an unapproved IEEE Standards Draft, subject to change.
  8045.  
  8046.  
  8047.  
  8048.  
  8049.  102                              4 POSIX Open System Environment Services
  8050.  
  8051.  
  8052.  
  8053.  
  8054.  
  8055.  
  8056.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  8057.  
  8058.  4.4.4.1  Application Program Interface Services
  8059.  
  8060.  This subclause describes the major categories of database services
  8061.  available at the POSIX Application Program Interface (API).  These
  8062.  services include:
  8063.  
  8064.      - Data Definition and Manipulation Services
  8065.  
  8066.      - Data Access Services
  8067.  
  8068.      - Data Integrity Services
  8069.  
  8070.      - Miscellaneous Services
  8071.  
  8072.  The following paragraphs clarify that these services should be provided
  8073.  for a large class of objects, access methods, and types of database
  8074.  systems.
  8075.  
  8076.     Types of Data Objects
  8077.              Ability to perform the above operations on a variety of types
  8078.              of data objects, such as text, graphics, image, documents,
  8079.              and voice.
  8080.  
  8081.     Types of Access Methods
  8082.              Ability to perform the above operations using a variety of
  8083.              access methods, such as indexed sequential access, nonindexed
  8084.              sequential access, and direct access.
  8085.  
  8086.     Types of Database Management Systems
  8087.              Ability to perform the above operations on a variety of types
  8088.              of file and database management systems, and database
  8089.              management systems, such as relational, network, semantic,
  8090.              and object oriented databases, and heterogeneous combinations
  8091.              of these database management systems.
  8092.  
  8093.  4.4.4.1.1  Data Definition and Manipulation Services
  8094.  
  8095.  These services relate to the ability of application programs to define
  8096.  and manipulate data.  These services are:
  8097.  
  8098.      - Data definition -- ability to create, alter, or drop tables, views,
  8099.        records, fields, and/or data
  8100.  
  8101.      - Data Manipulation -- ability to insert, select, update, and delete
  8102.        tables, views, records, fields, and data
  8103.  
  8104.  
  8105.  
  8106.  
  8107.  
  8108.  
  8109.               Copyright (c) 1991 IEEE.  All rights reserved.
  8110.       This is an unapproved IEEE Standards Draft, subject to change.
  8111.  
  8112.  
  8113.  
  8114.  
  8115.  4.4 Database Services                                                 103
  8116.  
  8117.  
  8118.  
  8119.  
  8120.  
  8121.  
  8122.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  8123.  
  8124.  4.4.4.1.2  Data Access Services
  8125.  
  8126.  These services relate to the ability of application programs to
  8127.  interrogate databases.  These services are:
  8128.  
  8129.      - Data Query Facilities -- ability to specify search conditions,
  8130.        consisting of a combination of select lists, predicates, and
  8131.        comparison operators
  8132.  
  8133.      - Data Transparency -- ability to transparently access data
  8134.        regardless of the location of that data.
  8135.  
  8136.      - Remote Data Access -- ability to access and update remote data
  8137.  
  8138.  4.4.4.1.3  Data Integrity Services
  8139.  
  8140.  These services relate to the ability of database management systems to
  8141.  protect the databases from hardware and software malfunctions.
  8142.  
  8143.      - Locking -- ability to specify locking of data to some degree of
  8144.        granularity
  8145.  
  8146.      - Consistency -- ability to specify and execute check and referential
  8147.        constraints that help ensure data correctness
  8148.  
  8149.      - Transaction Control -- ability to specify commit and rollback
  8150.        commands and guarantee serializability for database transactions     e
  8151.  
  8152.      - Synchronous Writes (Durability?) -- ability to force the writing of
  8153.        data to nonvolatile storage
  8154.  
  8155.  4.4.4.1.4  Miscellaneous Database Services                                 e
  8156.  
  8157.  Miscellaneous database services include:                                   e
  8158.  
  8159.      - Privilege Administration -- ability to grant and revoke privileges
  8160.        for accessing and administering data
  8161.  
  8162.      - Exception Handling -- ability to have applications that are
  8163.        interrupted and notified of exception conditions, to receive
  8164.        control of the machine and take action in response to these
  8165.        exception conditions--even if the action is to ``continue''
  8166.  
  8167.      - Screen Definitions -- ability to create screen definitions, and
  8168.        define, display, and/or paint screens to communicate information     e
  8169.        about databases                                                      e
  8170.  
  8171.      - Reporting -- ability to create formatted reports.
  8172.  
  8173.  
  8174.  
  8175.               Copyright (c) 1991 IEEE.  All rights reserved.
  8176.       This is an unapproved IEEE Standards Draft, subject to change.
  8177.  
  8178.  
  8179.  
  8180.  
  8181.  104                              4 POSIX Open System Environment Services
  8182.  
  8183.  
  8184.  
  8185.  
  8186.  
  8187.  
  8188.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  8189.  
  8190.      - Dynamic Facilities -- ability to temporarily turn control of a
  8191.        database to the end user for interactive access and manipulation of
  8192.        data, and then return control to the application.
  8193.  
  8194.      - Data Dictionary Services -- ability to get data about the data
  8195.        (i.e., metadata) stored in the database.  This allows users and
  8196.        applications to use the database contents in a much more flexible
  8197.        way.  These services allow a user to create, access, and manage
  8198.        this metadata much in the same way as other databases are
  8199.        maintained.
  8200.  
  8201.  4.4.4.2  External Environment Interface Services
  8202.  
  8203.  External Environment Interface services are required for distributed
  8204.  database management systems.  Also, to enable two or more databases to
  8205.  communicate with each other, a common interchange format is required.
  8206.  See 4.5.
  8207.  
  8208.  4.4.4.3  Database Resource Management Services
  8209.  
  8210.  These services are not visible to the application programmer at the
  8211.  Database API.  These services are usually provided by Database Utility
  8212.  Programs.  These services include:
  8213.  
  8214.      - Database Administration Services
  8215.  
  8216.      - Database Recovery Services
  8217.  
  8218.      - Distributed Database Management Services
  8219.  
  8220.      - Heterogeneous Environment Support Services
  8221.  
  8222.  4.4.4.3.1  Database Administration Services
  8223.  
  8224.  Database administration services refer to the ability for a designated     e
  8225.  data administrator to structure and configuration manage a database as a
  8226.  whole.  The administrator allocates resources and monitors utilization to
  8227.  assure that authorized users receive the proper services.  Archive
  8228.  functions, journaling, and logging services are available to the user and
  8229.  administrator on a selective basis.
  8230.  
  8231.  4.4.4.3.2  Database Recovery Services
  8232.  
  8233.  Database recovery services refer to the ability to decide that there has   e
  8234.  been a failure, allow recovery from failure, and permit a slave copy to
  8235.  become a master copy.
  8236.  
  8237.  
  8238.  
  8239.  
  8240.  
  8241.               Copyright (c) 1991 IEEE.  All rights reserved.
  8242.       This is an unapproved IEEE Standards Draft, subject to change.
  8243.  
  8244.  
  8245.  
  8246.  
  8247.  4.4 Database Services                                                 105
  8248.  
  8249.  
  8250.  
  8251.  
  8252.  
  8253.  
  8254.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  8255.  
  8256.  4.4.4.3.3  Distributed Database Management Services
  8257.  
  8258.  Distributed database management services support the partitioning and      e
  8259.  partial replication of the databases.
  8260.  
  8261.  4.4.4.3.4  Heterogeneous Environment Support Services
  8262.  
  8263.  Heterogeneous environment support services permit local database systems   e
  8264.  to be of different types (e.g., inverted list, hierarchical, network,
  8265.  relational) by providing translators between the local database form and
  8266.  a general ``network language.''
  8267.  
  8268.  4.4.4.3.5  Flagger
  8269.  
  8270.  A flagger is software that alerts programmers about any code that does     e
  8271.  not conform to the standard in question, such as the Structured Query      e
  8272.  Language standard.                                                         e
  8273.  
  8274.  
  8275.  4.4.5  Standards, Specifications, and Gaps
  8276.  
  8277.  There are currently four database standards, either completed or under
  8278.  development.  These are the relational data language SQL, a network data
  8279.  language called NDL, the Information Resource Dictionary System (IRDS)
  8280.  for data dictionary work, and a Remote Data Access (RDA) protocol.
  8281.  Table 4-5 summarizes the service requirements provided by the various
  8282.  standards.
  8283.  
  8284.  4.4.5.1  Current Standards
  8285.  
  8286.  This subclause describes the current accepted standards that apply to
  8287.  this area.
  8288.  
  8289.  _S_Q_L__S_t_a_n_d_a_r_d__D_a_t_a_b_a_s_e__L_a_n_g_u_a_g_e
  8290.  
  8291.     ISO 9075 (FIPS 127)                                                     e
  8292.  
  8293.     ANSI X3.168
  8294.  
  8295.                                                                             e
  8296.  
  8297.  ISO 9075 provides for many of the services described in 4.4.4, including   e
  8298.  Data Definition, Manipulation, and Integrity.  It provides for two levels
  8299.  of compliance:  the weaker Level 1 and the more capable Level 2.  While    e
  8300.  ISO 9075 deals with SQL independently of programming language, X3.168      e
  8301.  binds, or embeds, SQL within the programming languages COBOL, FORTRAN,
  8302.  Pascal, PL/1, C, and Ada.
  8303.  
  8304.  
  8305.  
  8306.  
  8307.               Copyright (c) 1991 IEEE.  All rights reserved.
  8308.       This is an unapproved IEEE Standards Draft, subject to change.
  8309.  
  8310.  
  8311.  
  8312.  
  8313.  106                              4 POSIX Open System Environment Services
  8314.  
  8315.  
  8316.  
  8317.  
  8318.  
  8319.  
  8320.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  8321.  
  8322.  
  8323.                      Table 4-5  -  Database Standards
  8324.  __________________________________________________________________________________________________________________________________________________
  8325.            Service             Type        Specification         Subclause
  8326.  _________________________________________________________________________
  8327.  Data Definition and            S     SQL:  ISO 9075             4.4.5.1    eeee
  8328.  Manipulation Services                      ANSI X3.168                     ee
  8329.  Data Access Services                                                       e
  8330.  Data Integrity Services                                                    e
  8331.  
  8332.  Data Definition and            S     NDL:  ISO 8907             4.4.5.1    eeee
  8333.  Manipulation Services                                                      e
  8334.  Data Access Services                                                       e
  8335.  Data Integrity Services                                                    e
  8336.  
  8337.  Miscellaneous Services         E     IRDS: ISO DP 10027 N2642   4.4.5.2    eeee
  8338.  (Data Security and                         (IRDS Framework),               ee
  8339.  Integrity, Exception                       ISO DP 8800 N2132               ee
  8340.  Handling, Screen                           (IRDS Interfaces),              ee
  8341.  Definitions, Reporting,                    ANSI X3.138                     ee
  8342.  Dynamic Facilities, Data                                                   e
  8343.  Dictionary Services)                                                       e
  8344.  
  8345.  Database Resource                                                          e
  8346.  Management Services                                                        e
  8347.  (Database Administration,                                                  e
  8348.  Recovery From Failure)                                                     e
  8349.  
  8350.  External Environment           E     RDA:  ISO/IEC DP 9759      4.4.5.1    eeee
  8351.  Interface Services                                                         e
  8352.  __________________________________________________________________________________________________________________________________________________
  8353.  
  8354.  
  8355.  Work is currently planned by ANSI and ISO to include ``generalized
  8356.  triggers,'' ``generalized assertions,'' ``recursive expressions,''
  8357.  ``escape from SQL,'' subtables, and support tools for object oriented and
  8358.  knowledge-based systems.
  8359.  
  8360.  _N_D_L__S_t_a_n_d_a_r_d__D_a_t_a_b_a_s_e__L_a_n_g_u_a_g_e
  8361.  
  8362.     ISO 8907
  8363.  
  8364.     ANSI X3.133
  8365.  
  8366.  This standard, developed in 1981-1986 by the ANSI X3H2 Database
  8367.  Committee, specifies a data definition language (DDL) and data
  8368.  manipulation language (DML) for network model databases.  This work is an
  8369.  outgrowth of the 1978 CODASYL specifications.
  8370.  
  8371.  
  8372.  
  8373.               Copyright (c) 1991 IEEE.  All rights reserved.
  8374.       This is an unapproved IEEE Standards Draft, subject to change.
  8375.  
  8376.  
  8377.  
  8378.  
  8379.  4.4 Database Services                                                 107
  8380.  
  8381.  
  8382.  
  8383.  
  8384.  
  8385.  
  8386.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  8387.  
  8388.  This standard provides for many of the services described in 4.4.4,
  8389.  including Data Definition, Manipulation, Access, and Integrity.  The
  8390.  above services apply only to network databases (i.e., not to relational
  8391.  or semantic databases.)
  8392.  
  8393.  No follow-on NDL activities are being conducted by ISO or ANSI.
  8394.  
  8395.  4.4.5.2  Emerging Standards
  8396.  
  8397.  This subclause describes the activities currently in progress to further
  8398.  standardize this area.
  8399.  
  8400.  _R_e_m_o_t_e__D_a_t_a__A_c_c_e_s_s__(_R_D_A_)__P_r_o_t_o_c_o_l
  8401.  
  8402.     ISO DP 9579-1              _G_e_n_e_r_i_c _R_e_m_o_t_e _D_a_t_a_b_a_s_e _A_c_c_e_s_s -- DP 2       e
  8403.  
  8404.     ISO DP 9579-2              _S_Q_L _S_p_e_c_i_a_l_i_z_a_t_i_o_n -- DP 1                   e
  8405.  
  8406.  This standard, developed by the ECMA Technical Committee on Database
  8407.  Standards, TC22, submitted to ISO in 1985, specifies a protocol that
  8408.  allows remote access and updating, via OSI communications protocols, of
  8409.  relational databases or of database systems that support SQL.
  8410.  
  8411.  This standard provides for the Data Transparency, Remote Data Access, and
  8412.  Support for Heterogeneous Environment requirements described in 4.4.
  8413.  This protocol is aimed at relational databases and other database types
  8414.  that provide access via relational interfaces such as SQL.
  8415.  
  8416.  Much work is planned on in this area by the ISO committee ISO
  8417.  TC97/SC21/WG3.  A specific area of current interest is a generic RDA that
  8418.  uses a nonspecific database language (i.e., not SQL.)
  8419.  
  8420.  _I_n_f_o_r_m_a_t_i_o_n__R_e_s_o_u_r_c_e__D_i_c_t_i_o_n_a_r_y__S_y_s_t_e_m__(_I_R_D_S_)
  8421.  
  8422.     ANSI X3.138                FIPS Pub 156, April 5, 1989
  8423.  
  8424.     ANSI X3H4/90-28 (draft, 4 Apr 90)
  8425.                                IRDS Export/Import File Format
  8426.  
  8427.     ISO DP 10027 N2642 (1988)  IRDS Framework
  8428.  
  8429.     ISO DP 8800 N2132 (1988)   IRDS Services Interfaces
  8430.  
  8431.  These standards are being developed by the ANSI X3H4 Database Group and
  8432.  the ISO/IEC /JTC 1/SC21 Working Group 3.  Both groups are addressing the
  8433.  general area of data dictionaries, but, as described below, the emphases
  8434.  of the activities differ.
  8435.  
  8436.  
  8437.  
  8438.  
  8439.               Copyright (c) 1991 IEEE.  All rights reserved.
  8440.       This is an unapproved IEEE Standards Draft, subject to change.
  8441.  
  8442.  
  8443.  
  8444.  
  8445.  108                              4 POSIX Open System Environment Services
  8446.  
  8447.  
  8448.  
  8449.  
  8450.  
  8451.  
  8452.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  8453.  
  8454.  The ANSI group primarily addresses the user interface area; that is, how
  8455.  a human user can access the Data Dictionary Services described in 4.4.4.
  8456.  
  8457.  The ISO groups concentrate more on the service interfaces (APIs) among
  8458.  lower level components and utilities of the database model.
  8459.  
  8460.  Differences in scope and incompatibilities exist between the model being
  8461.  developed by ISO and the model approved by ANSI.  They are independently
  8462.  developing the Services Interface, and an export/import facility.
  8463.  
  8464.  4.4.5.3  Gaps in Available Standards
  8465.  
  8466.  There are two significant areas described in 4.4.4 as requirements that
  8467.  are not addressed by standards:
  8468.  
  8469.      - Methods to access data such as hashing and indexed sequential
  8470.        access to data is not currently standardized.  There is no
  8471.        consensus in the standards community as to whether such
  8472.        standardization would be beneficial.
  8473.  
  8474.      - Standardization of semantic and object oriented models have also
  8475.        not taken place, though groups like the ANSI Database system study
  8476.        group (DBSSG) are currently investigating the feasibility of
  8477.        standardization in these areas.
  8478.  
  8479.      - I/O Services such as screen generation.
  8480.  
  8481.      - Management and control of database services.  Also include all gaps
  8482.        (all services without standards).
  8483.  
  8484.  
  8485.  4.4.6  OSE Cross-Category Services
  8486.  
  8487.  4.4.6.1  Security
  8488.  
  8489.  The ability to specify logical database access control mechanisms is       e
  8490.  important to database security.                                            e
  8491.  
  8492.  
  8493.  4.4.7  Related Standards
  8494.  
  8495.  The standards and activities described in this subclause are related to
  8496.  the above and may also be relevant to your activities.
  8497.  
  8498.  There are several areas closely related to the Database area that are
  8499.  worth considering with respect to standardization.
  8500.  
  8501.  The first area to consider is the communications and networking area.
  8502.  Interoperability for distributed applications or the use of distributed
  8503.  
  8504.  
  8505.               Copyright (c) 1991 IEEE.  All rights reserved.
  8506.       This is an unapproved IEEE Standards Draft, subject to change.
  8507.  
  8508.  
  8509.  
  8510.  
  8511.  4.4 Database Services                                                 109
  8512.  
  8513.  
  8514.  
  8515.  
  8516.  
  8517.  
  8518.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  8519.  
  8520.  databases may indicate the use of communications software adhering to
  8521.  networking standards.  See 4.3 for further discussion of that area.
  8522.  (Specifically consider the following standards described in that
  8523.  subclause:
  8524.  
  8525.     ISO/IEC 9804.3       (OSI CCR services)
  8526.  
  8527.     ISO/IEC 9805.3       (OSI CCR protocol)
  8528.  
  8529.     ISO 8824             _I_n_f_o_r_m_a_t_i_o_n _P_r_o_c_e_s_s_i_n_g _S_y_s_t_e_m_s--_O_S_I--
  8530.                          _S_p_e_c_i_f_i_c_a_t_i_o_n _o_f _A_b_s_t_r_a_c_t _S_y_n_t_a_x _N_o_t_a_t_i_o_n _O_n_e
  8531.                          (_A_S_N._1)
  8532.  
  8533.     ISO 8825             _I_n_f_o_r_m_a_t_i_o_n _P_r_o_c_e_s_s_i_n_g _S_y_s_t_e_m_s--_O_S_I--
  8534.                          _S_p_e_c_i_f_i_c_a_t_i_o_n _o_f _B_a_s_i_c _E_n_c_o_d_i_n_g _R_u_l_e_s _f_o_r
  8535.                          _A_b_s_t_r_a_c_t _S_y_n_t_a_x _N_o_t_a_t_i_o_n _O_n_e (_A_S_N._1)
  8536.  
  8537.  The second area to consider is transaction processing.  That area goes
  8538.  further in addressing the total requirements for distributed
  8539.  applications.  See 4.6.
  8540.  
  8541.  
  8542.  
  8543.  
  8544.  
  8545.  
  8546.  
  8547.  
  8548.  
  8549.  
  8550.  
  8551.  
  8552.  
  8553.  
  8554.  
  8555.  
  8556.  
  8557.  
  8558.  
  8559.  
  8560.  
  8561.  
  8562.  
  8563.  
  8564.  
  8565.  
  8566.  
  8567.  
  8568.  
  8569.  
  8570.  
  8571.               Copyright (c) 1991 IEEE.  All rights reserved.
  8572.       This is an unapproved IEEE Standards Draft, subject to change.
  8573.  
  8574.  
  8575.  
  8576.  
  8577.  110                              4 POSIX Open System Environment Services
  8578.  
  8579.  
  8580.  
  8581.  
  8582.  
  8583.  
  8584.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  8585.  
  8586.  4.5  Data Interchange Services
  8587.  
  8588.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _R_i_c_h_a_r_d _S_c_o_t_t
  8589.  
  8590.  
  8591.  4.5.1  Overview and Rationale
  8592.  
  8593.  The Data Interchange/Information Exchange components of the POSIX Open
  8594.  System Environment provide specialized support for the exchange of data
  8595.  between applications or components of applications.  Without support for
  8596.  data interchange, problems can arise when attempts are made to move data
  8597.  between different operational environments or between two related
  8598.  applications.  More specifically, data interchange problems arise in each
  8599.  of the five following situations:
  8600.  
  8601.      - Movement of a single application program and its associated data
  8602.        between operational environments,
  8603.  
  8604.      - Movement of data between cooperating application software within
  8605.        the same operational environment,
  8606.  
  8607.      - Movement of data between cooperating application software operating
  8608.        in differing operational environments,
  8609.  
  8610.      - Movement of data between related, but not cooperating, application
  8611.        software within a single operational environment, and across
  8612.        differing operational environments.
  8613.  
  8614.  From the global view, the data interchange components can provide the
  8615.  means to satisfy the needs in each of these situations.  These standards
  8616.  need to define physical formats, data formats, code sets, and data
  8617.  descriptions that are consistent across all implementations of the POSIX
  8618.  Open System Environment.
  8619.  
  8620.  
  8621.  4.5.2  Scope
  8622.  
  8623.  The data interchange component of the POSIX Open System Environment
  8624.  includes standard services, protocols, and data formats required to
  8625.  ensure that data can be interchanged between related application
  8626.  software.  Physical media formats are beyond the scope of the POSIX Open
  8627.  System Environment.
  8628.  
  8629.  
  8630.  
  8631.  
  8632.  
  8633.  
  8634.  
  8635.  
  8636.  
  8637.               Copyright (c) 1991 IEEE.  All rights reserved.
  8638.       This is an unapproved IEEE Standards Draft, subject to change.
  8639.  
  8640.  
  8641.  
  8642.  
  8643.  4.5 Data Interchange Services                                         111
  8644.  
  8645.  
  8646.  
  8647.  
  8648.  
  8649.  
  8650.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  8651.  
  8652.  4.5.3  Reference Model
  8653.  
  8654.  _________________________________________________________________________
  8655.  
  8656.  
  8657.  
  8658.  
  8659.  
  8660.  
  8661.  
  8662.  
  8663.  
  8664.  
  8665.  
  8666.  
  8667.  
  8668.  
  8669.  
  8670.  
  8671.  
  8672.  
  8673.  
  8674.  _________________________________________________________________________
  8675.              Figure 4-12  -  Data Interchange Reference Model
  8676.  
  8677.  
  8678.  The Data Interchange Services relate directly to the POSIX Open System
  8679.  Environment reference model that was presented in Figure 3-1.  Figure 4-
  8680.  12 shows the components of the reference model that are significant for
  8681.  data interchange.  The reference model defines the conceptual
  8682.  relationships required to provide these facilities.  It should not be
  8683.  viewed as a description of an implementation.  The key entities within
  8684.  the figure are the Application Software, the Application Platform, and
  8685.  the External Environment.  To satisfy the data interchange service
  8686.  requirements, the POSIX Open System Environment must permit application
  8687.  software to transfer data to and from the external environment.
  8688.  
  8689.  The application software requests this transfer through the Application
  8690.  Program Interface.  In response to those requests, the data interchange
  8691.  components of the Application Platform handle conversions to and from
  8692.  standard formats and the transfer of the information across the External
  8693.  Environment Interface (EEI).  The EEI, which defines the format
  8694.  specifications required to support data interchange, can be divided into
  8695.  Data Description Protocols and Data Format Protocols.  Data Description
  8696.  Protocols provide a means to identify the data that is present.  Data
  8697.  Format Protocols provide the storage representation of the actual data.
  8698.  
  8699.  Today, this model is only partially supported by standards.  Physical
  8700.  formats are fairly well standardized.  Some work is beginning on data
  8701.  
  8702.  
  8703.               Copyright (c) 1991 IEEE.  All rights reserved.
  8704.       This is an unapproved IEEE Standards Draft, subject to change.
  8705.  
  8706.  
  8707.  
  8708.  
  8709.  112                              4 POSIX Open System Environment Services
  8710.  
  8711.  
  8712.  
  8713.  
  8714.  
  8715.  
  8716.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  8717.  
  8718.  format protocols standards, particularly in the networking area.  At this
  8719.  time, no general standards exist to support Data description protocols.
  8720.  
  8721.  
  8722.  4.5.4  Service Requirements
  8723.  
  8724.  This subclause details the Data Interchange Services and protocols that
  8725.  are required to support application portability and interoperability.
  8726.  Subclause 4.5.4.1 describes the API service requirements.  4.5.4.2
  8727.  describes the EEI service (i.e., protocol) requirements.
  8728.  
  8729.  Data interchange is one of the components of the POSIX Open System
  8730.  Environment that is now just beginning to evolve.  At this time, the
  8731.  general requirements for services are understood, but there is little
  8732.  general existing practice that can be pointed to as showing that current
  8733.  service requirements are both necessary and complete.  Most existing
  8734.  practice is limited to a specific application domain.  As a developing
  8735.  area, data interchange represents gaps in both the definition of service
  8736.  requirements and standards.  The data interchange component is, none the
  8737.  less, critical for supporting application portability and
  8738.  interoperability.  The data interchange service requirements are
  8739.  currently described to the extent possible at this time in their
  8740.  evolution.  More detail will be added in future revisions of this guide.
  8741.  
  8742.  4.5.4.1  Application Program Interface Services
  8743.  
  8744.  The API services to support data interchange need to provide the ability
  8745.  to store and retrieve data using the formats and protocols provided at
  8746.  the data interchange EEI.
  8747.  
  8748.  At this time little work has been directed at defining API-level service
  8749.  requirements for data interchange.  Data interchange API services need to
  8750.  provide a means to request that specific data be represented using the
  8751.  EEI services defined below.  Progress in this area is similar to the
  8752.  development of the networking area.  Initial standards defined protocols
  8753.  and only after those were in use has attention shifted to providing a
  8754.  standard mechanism for requesting those networking services.
  8755.  
  8756.  4.5.4.2  External Environment Interface Services
  8757.  
  8758.  This section identifies the EEI services required to support data
  8759.  interchange.  These services are all in the form of protocol and format
  8760.  definitions.  As shown in Figure 4-12, these protocols include:
  8761.  
  8762.      - Character Sets and Data Representation
  8763.  
  8764.      - Data Format Protocols
  8765.  
  8766.  
  8767.  
  8768.  
  8769.               Copyright (c) 1991 IEEE.  All rights reserved.
  8770.       This is an unapproved IEEE Standards Draft, subject to change.
  8771.  
  8772.  
  8773.  
  8774.  
  8775.  4.5 Data Interchange Services                                         113
  8776.  
  8777.  
  8778.  
  8779.  
  8780.  
  8781.  
  8782.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  8783.  
  8784.      - Data Description Protocols
  8785.  
  8786.  These protocols are required to support the exchange of information
  8787.  between application software entities, both within a single application
  8788.  platform and between application platforms.
  8789.  
  8790.  4.5.4.2.1  Character Sets and Data Representation
  8791.  
  8792.  The ability to support Character Sets and Data Representation is crucial
  8793.  to providing effective data interchange between application software
  8794.  operating under differing language and cultural conventions.  These
  8795.  services add facilities to the POSIX Open System Environment to identify
  8796.  the character set and data representations associated with textual data.
  8797.  A detailed description of the requirements in this area can be found in
  8798.  5.1.
  8799.  
  8800.  4.5.4.2.2  Data Format Protocols
  8801.  
  8802.  The data format protocols need to provide the ability to identify the
  8803.  representation of the data in a manner that is independent of the
  8804.  specific execution environment.  The data format protocol layer adds
  8805.  attributes that describe the physical characteristics of the data that
  8806.  must be known to properly retrieve the data value, given the storage
  8807.  formats that are native on the hardware/software environment where the
  8808.  data is used.  The complete attribute information required to decipher
  8809.  that data value includes:
  8810.  
  8811.      - Detailed storage format for the value
  8812.  
  8813.      - The data value in an environment-neutral format
  8814.  
  8815.  The data format protocols protect applications from hardware/software
  8816.  differences between environments.  Specifically, the protocols ensure
  8817.  that data remains stable when moving between environments where the
  8818.  character set, word size, or byte ordering may differ.
  8819.  
  8820.  4.5.4.2.3  Data Description Protocols
  8821.  
  8822.  Data description protocols provide the ability to share data between
  8823.  related application software entities, even if they were not specifically
  8824.  written to cooperate.  Building upon the facilities provided by the
  8825.  previous two Data Interchange EEI Services, data description protocols
  8826.  provide a means of associating a name or other identifier with the
  8827.  individual data elements in a standard manner.  This permits an
  8828.  application program to correctly identify data that was created by an
  8829.  unrelated application.  To date, most standards in this area have limited
  8830.  themselves to specific application areas and no general solution has been
  8831.  provided.
  8832.  
  8833.  
  8834.  
  8835.               Copyright (c) 1991 IEEE.  All rights reserved.
  8836.       This is an unapproved IEEE Standards Draft, subject to change.
  8837.  
  8838.  
  8839.  
  8840.  
  8841.  114                              4 POSIX Open System Environment Services
  8842.  
  8843.  
  8844.  
  8845.  
  8846.  
  8847.  
  8848.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  8849.  
  8850.  4.5.5  Standards, Specifications, and Gaps
  8851.  
  8852.  See Table 4-6.
  8853.  
  8854.  
  8855.                  Table 4-6  -  Data Interchange Standards
  8856.  __________________________________________________________________________________________________________________________________________________
  8857.                 Service                  Type     Specification      Subclause e
  8858.  ______________________________________________________________________________e
  8859.  
  8860.  Data Description Protocols ODA/ODIF      S     ISO 8613 Parts 1-8   4.5.5.1   e ee
  8861.                             SGML          S     ISO 8879             4.5.5.1   e ee
  8862.                             EDIFACT       S     ISO 9735             4.5.5.1   e ee
  8863.                             STEP          E     ISO DP 10303         4.5.5.2   e ee
  8864.                             EDIFACT       S     ANSI X.12            4.5.5.1   e ee
  8865.                             IGES          G     NBSIR 86             4.5.5.3   e ee
  8866.                             VHDL VHSIC    G     IEEE P1076           4.5.5.3   e ee
  8867.  Data Format Protocols      ODA/ODIF      S     ISO 8613 Parts 1-8   4.5.5.1   e ee
  8868.                             SGML          S     ISO 8879             4.5.5.1   e ee
  8869.                             CGM           S     ISO 8632             4.5.5.1   e ee
  8870.                             CGM           S     ANSI X3.122-1986     4.5.5.1   e ee
  8871.                             STEP          E     ISO DP 10303         4.5.5.2   e ee
  8872.                             EDIFACT       S     ISO 9735             4.5.5.1   e ee
  8873.                             EDIFACT       S     ANSI X.12            4.5.5.1   e ee
  8874.                             IGES          G     NBSIR 86-3359        4.5.5.3   e ee
  8875.                             VHDL VHSIC    G     IEEE P1076           4.5.5.3   e ee
  8876.                             CDIF          G                          4.5.5.3   e ee
  8877.  __________________________________________________________________________________________________________________________________________________
  8878.  
  8879.  
  8880.  4.5.5.1  Current Standards
  8881.  
  8882.  _O_p_e_n__D_o_c_u_m_e_n_t__A_r_c_h_i_t_e_c_t_u_r_e__(_O_D_A_)_/_O_p_e_n__D_o_c_u_m_e_n_t__I_n_t_e_r_c_h_a_n_g_e__F_o_r_m_a_t__(_O_D_I_F_)
  8883.  
  8884.  The ODA/ODIF standard (ISO 8613 Parts 1-8) provides a standard for the
  8885.  structures used to represent documents.  The ODA model defines a
  8886.  comprehensive description of a documents format.  It supports both
  8887.  reproduction of the original document and also editing and formatting of
  8888.  the document.
  8889.  
  8890.  Part 5 of the ISO ODA standard specifies the interchange format for ODA
  8891.  documents; specifically ODIF.  ODIF is an ASN.1 (ISO 8825) based
  8892.  presentation of the ODA document.
  8893.  
  8894.  _S_t_a_n_d_a_r_d__G_e_n_e_r_a_l_i_z_e_d__M_a_r_k_u_p__L_a_n_g_u_a_g_e__(_S_G_M_L_)
  8895.  
  8896.  SGML (ISO 8879) is a language that allows users to precisely define the
  8897.  structure of a document.  The key difference between SGML and ODA/ODIF is
  8898.  that the former provides the flexibility to define custom document types.
  8899.  
  8900.  
  8901.               Copyright (c) 1991 IEEE.  All rights reserved.
  8902.       This is an unapproved IEEE Standards Draft, subject to change.
  8903.  
  8904.  
  8905.  
  8906.  
  8907.  4.5 Data Interchange Services                                         115
  8908.  
  8909.  
  8910.  
  8911.  
  8912.  
  8913.  
  8914.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  8915.  
  8916.  _C_o_m_p_u_t_e_r__G_r_a_p_h_i_c_s__M_e_t_a_f_i_l_e__(_C_G_M_)
  8917.  
  8918.  CGM (ISO 8632, ANSI X3.122-1986) provides a standard means for the
  8919.  storage and exchange of computer graphics.  Graphic information is stored
  8920.  in a device- and resolution-independent fashion that can support both the
  8921.  display and the manipulation of the data.
  8922.  
  8923.  _E_l_e_c_t_r_o_n_i_c__D_a_t_a__I_n_t_e_r_c_h_a_n_g_e__(_E_D_I_)
  8924.  
  8925.  The EDI standards [ISO 9735 (EDIFACT), ANSI X.12] provide support for the
  8926.  exchange of structured business data.  EDI is typically used to transfer
  8927.  business documents such as purchase orders, invoices, promotional
  8928.  announcements, and electronic funds transfer information.
  8929.  
  8930.                                                                             e
  8931.  
  8932.  4.5.5.2  Emerging Standards
  8933.  
  8934.  _S_t_a_n_d_a_r_d__f_o_r__t_h_e__E_x_c_h_a_n_g_e__o_f__P_r_o_d_u_c_t__M_o_d_e_l__D_a_t_a__(_S_T_E_P_)
  8935.  
  8936.  STEP (ISO DP 10303) is a neutral mechanism capable of completely
  8937.  representing product data throughout the life cycle of a product.  The
  8938.  completeness of this representation makes it suitable not only for file
  8939.  exchange, but also as a basis for implementing and sharing databases of
  8940.  archiving.
  8941.  
  8942.                                                                             e
  8943.  
  8944.  4.5.5.3  Gaps in Available Standards
  8945.  
  8946.  4.5.5.3.1  Public Specifications
  8947.  
  8948.  Most standards activity in the data interchange area has been isolated to
  8949.  specialized application areas.  These activities have attempted to
  8950.  support data interchange by limiting the scope of the effort to a
  8951.  specific type of data.  These industry standards include:
  8952.  
  8953.                                                                             e
  8954.  
  8955.  _I_n_i_t_i_a_l__G_r_a_p_h_i_c_s__E_x_c_h_a_n_g_e__S_p_e_c_i_f_i_c_a_t_i_o_n__(_N_B_S_I_R__8_6_-_3_3_5_9_)
  8956.  
  8957.  IGES is used heavily in the exchange of graphical information between
  8958.  applications.
  8959.  
  8960.                                                                             e
  8961.  
  8962.  
  8963.  
  8964.  
  8965.  
  8966.  
  8967.               Copyright (c) 1991 IEEE.  All rights reserved.
  8968.       This is an unapproved IEEE Standards Draft, subject to change.
  8969.  
  8970.  
  8971.  
  8972.  
  8973.  116                              4 POSIX Open System Environment Services
  8974.  
  8975.  
  8976.  
  8977.  
  8978.  
  8979.  
  8980.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  8981.  
  8982.  _C_A_S_E__D_a_t_a__I_n_t_e_r_c_h_a_n_g_e__F_o_r_m_a_t__(_C_D_I_F_)
  8983.  
  8984.  The CDIF Technical Committee is developing a data interchange format to
  8985.  serve as an industry standard for exchanging information between
  8986.  Computer-Aided Software Engineering (CASE) tools.  CDIF is an EIA-
  8987.  endorsed initiative.  It assumes that two or more tools may interface
  8988.  asynchronously with each other and will transfer information from one to
  8989.  another via ``CDIF files.''  The types of information that may be
  8990.  contained in these files is defined by the CDIF Conceptual Models.
  8991.  
  8992.                                                                             e
  8993.  
  8994.  _H_a_r_d_w_a_r_e__D_e_s_c_r_i_p_t_i_o_n__L_a_n_g_u_a_g_e__(_V_H_D_L__V_H_S_I_C_)
  8995.  
  8996.  The VHDL standard (IEEE P1076) defines a representation for the exchange
  8997.  of CAD representations of electronic circuits.
  8998.  
  8999.  4.5.5.3.2  Unsatisfied Service Requirements
  9000.  
  9001.  None of these standards addresses a general means to handle application
  9002.  data in a manner to ensure portability between environments.  The closest
  9003.  attempt is the effort just beginning in POSIX.8 to define a means within
  9004.  the network interface to provide data portability.  However, even this
  9005.  effort is not attempting to solve the broader issue of interoperability
  9006.  of multiple applications.  The existing standards have all evolved to
  9007.  support the interchange of specific types of data between separate
  9008.  applications.  Support for general data portability is not addressed by
  9009.  existing standard, except for ISIS, which does not appear to have caught
  9010.  on.
  9011.  
  9012.  
  9013.  4.5.6  OSE Cross-Category Services
  9014.  
  9015.  Not applicable.
  9016.  
  9017.  
  9018.  4.5.7  Related Standards
  9019.  
  9020.  The following standards are related to the services covered in this
  9021.  clause as they address some of the services described in section 4.6.4 at
  9022.  some level.  Each of these related standards are addressed fully as part
  9023.  of another service category.
  9024.  
  9025.   ASN.1   ISO 8824               Abstract Syntax Notation   (Clause 4.3)
  9026.           ISO 8825               ASN.1 Basic Encoding Rules (Clause 4.3)
  9027.  
  9028.   MHS     ISO/CCITT X.400-1984   Message Handling System (Clause 4.3)
  9029.  
  9030.  
  9031.  
  9032.  
  9033.               Copyright (c) 1991 IEEE.  All rights reserved.
  9034.       This is an unapproved IEEE Standards Draft, subject to change.
  9035.  
  9036.  
  9037.  
  9038.  
  9039.  4.5 Data Interchange Services                                         117
  9040.  
  9041.  
  9042.  
  9043.  
  9044.  
  9045.  
  9046.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  9047.  
  9048.           ISO/CCITT X.400-1988   Message Handling System (Clause 4.3)
  9049.  
  9050.  
  9051.  4.5.8  Open Issues
  9052.  
  9053.  Data interchange support must address hardware/software differences
  9054.  between environments.  The key concerns in transporting data that must be
  9055.  addressed will include the character set, word size, and byte ordering
  9056.  for the operating environment along with a accurate identification of the
  9057.  data value.
  9058.  
  9059.  The data portability standards adopted within POSIX Open System
  9060.  Environment need to define data formats that will enable applications to
  9061.  create data that can be used read and properly interpreted on differing
  9062.  operating environments and by other application software.
  9063.  
  9064.  
  9065.  
  9066.  
  9067.  
  9068.  
  9069.  
  9070.  
  9071.  
  9072.  
  9073.  
  9074.  
  9075.  
  9076.  
  9077.  
  9078.  
  9079.  
  9080.  
  9081.  
  9082.  
  9083.  
  9084.  
  9085.  
  9086.  
  9087.  
  9088.  
  9089.  
  9090.  
  9091.  
  9092.  
  9093.  
  9094.  
  9095.  
  9096.  
  9097.  
  9098.  
  9099.               Copyright (c) 1991 IEEE.  All rights reserved.
  9100.       This is an unapproved IEEE Standards Draft, subject to change.
  9101.  
  9102.  
  9103.  
  9104.  
  9105.  118                              4 POSIX Open System Environment Services
  9106.  
  9107.  
  9108.  
  9109.  
  9110.  
  9111.  
  9112.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  9113.  
  9114.  4.6  Transaction Processing Services
  9115.  
  9116.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _B_o_b _G_a_m_b_r_e_l
  9117.  
  9118.  
  9119.  4.6.1  Overview and Rationale
  9120.  
  9121.  The database management clause (see 4.4) described some transaction
  9122.  processing (TP) service requirements (specific to databases).  This        e
  9123.  clause describes the complete set of transaction processing services from
  9124.  the application software point of view.  Note that transaction processing
  9125.  services have long been been regarded, variously, to be within the domain
  9126.  of databases or within the domain of operating systems and more recently
  9127.  within the domain of interconnect.  These services are more broadly
  9128.  applicable than just both of these areas, and so are treated here as a     e
  9129.  separate clause.
  9130.  
  9131.  Transactions (``units of work'') have boundaries (start points and end
  9132.  points) that are determined by the action of the transaction application
  9133.  program.  The transaction application program can request to either
  9134.  commit or rollback the work done in the transaction when it identifies
  9135.  the end point.  The system will complete a commit operation only if all
  9136.  operations performed during the transaction can complete successfully.
  9137.  Otherwise the system will abort the transaction (rollback the work done
  9138.  by it) and notify the transaction application program of this action.
  9139.  
  9140.  The following is quoted with a few editorial changes from ISO/IEC DP
  9141.  10026-1, the ISO Distributed Transaction Processing standard draft:
  9142.  
  9143.        A transaction is characterized by four properties:
  9144.        atomicity, consistency, isolation, and durability.  These are
  9145.        the _A_C_I_D properties.
  9146.  
  9147.        Atomicity implies that the operations of a unit of work are
  9148.        either all performed, or none of them are performed.
  9149.  
  9150.        Consistency implies that the operations of a unit of work, if
  9151.        performed at all, are performed accurately, correctly, and
  9152.        with validity, with respect to application semantics.
  9153.  
  9154.        Isolation implies that the partial results of a unit of work
  9155.        are not accessible, except by operations which are part of
  9156.        the unit of work.  Isolation also implies that units of work
  9157.        which share bound data are serializable.
  9158.  
  9159.        Durability implies that all the effects of a completed unit
  9160.        of work are not altered by any sort of failure.
  9161.  
  9162.  
  9163.  
  9164.  
  9165.               Copyright (c) 1991 IEEE.  All rights reserved.
  9166.       This is an unapproved IEEE Standards Draft, subject to change.
  9167.  
  9168.  
  9169.  
  9170.  
  9171.  4.6 Transaction Processing Services                                   119
  9172.  
  9173.  
  9174.  
  9175.  
  9176.  
  9177.  
  9178.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  9179.  
  9180.  4.6.2  Scope
  9181.  
  9182.  This clause deals with the transaction processing services needed for a
  9183.  large number of styles of transaction processing including the following:
  9184.  
  9185.      - Transactional access to a single database manager on a single
  9186.        machine
  9187.  
  9188.      - Transaction access to nondatabase ``resource managers'' (such as
  9189.        the software managing the cash in an automatic teller machine)
  9190.  
  9191.      - Distributed Databases--databases spanning multiple machines, but
  9192.        accessed by application programs as if just a single database
  9193.  
  9194.      - Online Transaction Processing (OLTP)--the scheduling of
  9195.        ``transaction programs'' based on terminal input with consolidated
  9196.        recovery of the database updates and the terminal messages
  9197.  
  9198.      - Distributed Transaction Processing (DTP)--different machines
  9199.        running multiple application programs with multiple databases,
  9200.        using a client/server or conversational application-to-application
  9201.        communications paradigm
  9202.  
  9203.  Note that Transaction Processing Services are used in all of the above
  9204.  situations, and others too.
  9205.  
  9206.  Finally, it should be noted that ``transactions'' are not really
  9207.  ``messages,'' but rather ``units of work'' that may encompass multiple
  9208.  messages.  Furthermore, while traditionally ``transaction processing''
  9209.  has usually been synonymous with ``OLTP'' where so-called ``immediate
  9210.  transactions'' are the norm, other types of transactions are also
  9211.  covered:  ``batch transactions'' (where the work is done in the
  9212.  ``background'') and ``deferred transactions'' where there may be a time
  9213.  dependence on the transaction, such as a fixed start time.
  9214.  
  9215.  This clause addresses the current work in progress in groups such as ISO
  9216.  and others.
  9217.  
  9218.  
  9219.  4.6.3  Reference Model
  9220.  
  9221.  This subclause addresses the conventional Transaction Processing
  9222.  Reference Model, the POSIX OSE Reference Model (incorporating transaction
  9223.  processing considerations), and other important real world considerations
  9224.  introduced by Transaction Processing.
  9225.  
  9226.  
  9227.  
  9228.  
  9229.  
  9230.  
  9231.               Copyright (c) 1991 IEEE.  All rights reserved.
  9232.       This is an unapproved IEEE Standards Draft, subject to change.
  9233.  
  9234.  
  9235.  
  9236.  
  9237.  120                              4 POSIX Open System Environment Services
  9238.  
  9239.  
  9240.  
  9241.  
  9242.  
  9243.  
  9244.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  9245.  
  9246.  4.6.3.1  Conventional Transaction Processing Reference Model
  9247.  
  9248.  A model for transaction processing is developed here to complement the
  9249.  POSIX system model.  Current work in progress by the POSIX.11 Transaction
  9250.  Processing Working Group and other groups such as ISO/IEC JTC 1/SC21 Open
  9251.  Systems Interconnection--Distributed Transaction Processing may result in
  9252.  a Transaction Processing Reference Model more suitable than the one
  9253.  developed here.  At that time, such a model will be referenced and
  9254.  incorporated into the POSIX OSE reference model.  Until that time, the
  9255.  current model will be used as a convenient means for describing the
  9256.  services needed in this domain.
  9257.  
  9258.  While transaction processing services have usually been thought of as
  9259.  applying to databases, the applicability goes further.  Nonetheless, the
  9260.  description given here of the transaction processing model shows how the
  9261.  transaction processing program can view the transaction services as an
  9262.  extension of the the Database view of the POSIX OSE reference model as
  9263.  shown in Figure 4-10.  From the transaction application program point of
  9264.  view, a transaction processing system has additional capabilities that go
  9265.  beyond those provided by database systems.  These services to the
  9266.  transaction application program are provided at an API that is called the
  9267.  _T_r_a_n_s_a_c_t_i_o_n _M_a_n_a_g_e_r _A_P_I.  (See Figure 4-13.)  For convenience in
  9268.  discussing the model, the provider of those services is called the
  9269.  _T_r_a_n_s_a_c_t_i_o_n _M_a_n_a_g_e_r (TM).
  9270.  
  9271.  _________________________________________________________________________
  9272.  
  9273.  
  9274.  
  9275.  
  9276.  
  9277.  
  9278.  
  9279.  
  9280.  
  9281.  
  9282.  
  9283.  
  9284.  
  9285.  
  9286.  
  9287.  
  9288.  
  9289.  _________________________________________________________________________
  9290.        Figure 4-13  -  The Conventional Transaction Processing Model
  9291.  
  9292.  
  9293.  The transaction application program requests services provided by the _T_P
  9294.  _r_e_s_o_u_r_c_e _m_a_n_a_g_e_r2) (e.g., a database manager) via the _T_P _r_e_s_o_u_r_c_e _m_a_n_a_g_e_r
  9295.  
  9296.  
  9297.               Copyright (c) 1991 IEEE.  All rights reserved.
  9298.       This is an unapproved IEEE Standards Draft, subject to change.
  9299.  
  9300.  
  9301.  
  9302.  
  9303.  4.6 Transaction Processing Services                                   121
  9304.  
  9305.  
  9306.  
  9307.  
  9308.  
  9309.  
  9310.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  9311.  
  9312.  _A_P_I.  The transaction manager API and the TP resource manager API are
  9313.  called the _t_r_a_n_s_a_c_t_i_o_n _s_e_r_v_i_c_e_s _A_P_I and provide all the services needed
  9314.  by transaction application programs.
  9315.  
  9316.  The ACID properties are maintained for each managed resource by a _T_P
  9317.  _R_e_s_o_u_r_c_e _M_a_n_a_g_e_r (_T_P_R_M), coordinated by a _T_r_a_n_s_a_c_t_i_o_n _M_a_n_a_g_e_r.  The
  9318.  interface between the TP Resource Manager and the Transaction Manager
  9319.  will be called the _T_r_a_n_s_a_c_t_i_o_n _M_a_n_a_g_e_r/_T_P _R_e_s_o_u_r_c_e _M_a_n_a_g_e_r _S_I_I (_T_M/_T_P_R_M
  9320.  _S_I_I).
  9321.  
  9322.  The ACID properties can be applied not only to resources such as
  9323.  databases, but also to other resources that might not be obvious.  For
  9324.  instance, a transaction that dispenses cash may wait until the cash
  9325.  dispensing machine has signaled completion before considering the
  9326.  transaction complete and updating involved accounts.  This illustration
  9327.  also shows the limits of transaction processing resource management.  The
  9328.  machine could signal completion, but a mechanical problem could prevent
  9329.  the cash from being dispensed correctly, undetected by the system.
  9330.  
  9331.  Besides database TPRMs and miscellaneous nondatabase TPRMs, a third class
  9332.  of of TPRMs exist:  Communications TPRMs (cTPRM).  Services provided by
  9333.  cTPRMs are used when two cooperating transaction application programs
  9334.  need to communicate with each other in the context of the same
  9335.  transaction.  At least two communications paradigms have been identified
  9336.  as beneficial to cooperating transaction applications programs:
  9337.  client/server (RPC, single request/response) and conversational (peer-
  9338.  to-peer, dialog).
  9339.  
  9340.  4.6.3.2  POSIX OSE Reference Model (with Transaction Processing)
  9341.  
  9342.  The conventional transaction processing model is shown integrated into
  9343.  the POSIX OSE Reference Model in Figure 4-14.  Because the POSIX OSE
  9344.  Reference Model does not address System Integration Interfaces (SIIs) per
  9345.  se, they are not shown in the integrated model.  What is shown are the
  9346.  transaction processing services APIs and EEIs.
  9347.  
  9348.  
  9349.  
  9350.  
  9351.  
  9352.  
  9353.  
  9354.  
  9355.  __________
  9356.   2) The term ``TP resource manager'' should not be confused with a         e
  9357.      different term, ``resource management services,'' which is a type of   e
  9358.      service described in most service category classes in this section     e
  9359.      (e.g., 4.6.4.3).                                                       e
  9360.  
  9361.  
  9362.  
  9363.               Copyright (c) 1991 IEEE.  All rights reserved.
  9364.       This is an unapproved IEEE Standards Draft, subject to change.
  9365.  
  9366.  
  9367.  
  9368.  
  9369.  122                              4 POSIX Open System Environment Services
  9370.  
  9371.  
  9372.  
  9373.  
  9374.  
  9375.  
  9376.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  9377.  
  9378.  _________________________________________________________________________
  9379.  
  9380.  
  9381.  
  9382.  
  9383.  
  9384.  
  9385.  
  9386.  
  9387.  
  9388.  
  9389.  
  9390.  
  9391.  
  9392.  
  9393.  
  9394.  
  9395.  
  9396.  
  9397.  
  9398.  
  9399.  
  9400.  
  9401.  _________________________________________________________________________
  9402.      Figure 4-14  -  POSIX OSE Transaction Processing Reference Model
  9403.  
  9404.  
  9405.  4.6.3.3  Implementation Aspects                                            e
  9406.  
  9407.  The POSIX OSE Reference Model does not provide for a way to expose the
  9408.  details of the Application Platform.  System Internal Interfaces (SIIs)    e
  9409.  are beyond the direct scope of this guide because they do not directly     e
  9410.  affect application portability or system interoperability.  In the         e
  9411.  Transaction Processing world, as shown in the conventional Transaction
  9412.  Processing Reference Model (see 4.6.3.1), the existence of Transaction
  9413.  Managers and multiple TP Resource Managers connected by the TM/TPRM SII
  9414.  is important.  One way to think about the real world implications of this
  9415.  is that TP Resource Managers and the Transaction Managers could both be
  9416.  implemented in the Application Platform as separate entities, connected
  9417.  to each other by the TM/TPRM SII.  This does not, however, imply that the
  9418.  two must be implemented as separate entities, though there are advantages
  9419.  to the user if they are separate.
  9420.  NOTE:  For application portability it is not required that the
  9421.  application platform actually consist of Transaction Managers and TP
  9422.  Resource Managers, but in the new age of Open Systems, there are clear
  9423.  advantages in doing so.  Two advantages seem obvious:  the ability to
  9424.  ``mix and match'' Transaction Managers and TP Resource Managers from
  9425.  different vendors; and the ability of a user to construct his/her own TP
  9426.  Resource Manager to manage particular critical resources.  A market has
  9427.  
  9428.  
  9429.               Copyright (c) 1991 IEEE.  All rights reserved.
  9430.       This is an unapproved IEEE Standards Draft, subject to change.
  9431.  
  9432.  
  9433.  
  9434.  
  9435.  4.6 Transaction Processing Services                                   123
  9436.  
  9437.  
  9438.  
  9439.  
  9440.  
  9441.  
  9442.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  9443.  
  9444.  already developed for ``plug compatible'' TMs and TPRMs.  All TPRMs at
  9445.  this printing are Database type TPRMs.  It is expected that a market will
  9446.  also develop for Communications type TPRMs.  It is not at all clear that
  9447.  the industry will develop other types of widely applicable TPRMs, thus
  9448.  forcing users to develop their own.  Users could use the interface
  9449.  described here to do such development work.
  9450.  
  9451.  This NOTE very briefly describes the services that should be provided at
  9452.  such an interface.
  9453.  
  9454.  The TM/TPRM interface must provide the ability of TMs and TPRMs to:
  9455.  register with each other; obtain recovery status information; pass along
  9456.  transaction identifier information; rollback, prepare to commit, and
  9457.  commit the transaction.  The interface must provide for the needs of the
  9458.  full range of transaction processing including distributed transaction
  9459.  processing with multiple TPRMs.
  9460.  
  9461.  Finally it should be noted that the industry recognizes the need for
  9462.  standardization of components as well as the standardization of
  9463.  portability and interoperability.  At least one industry group is
  9464.  standardizing and several vendors are implementing products utilizing an
  9465.  interface as described here.
  9466.  
  9467.  
  9468.  4.6.4  Service Requirements
  9469.  
  9470.  Services provided via the Transaction Processing Services API are
  9471.  described in 4.6.4.1.  Services to enable the distribution of transaction
  9472.  processing are described in 4.6.4.2.  General services, mostly performing
  9473.  administrative functions, are described in 4.6.4.3.                        e
  9474.  
  9475.  4.6.4.1  Application Program Interface Services
  9476.  
  9477.                                                                             e
  9478.  
  9479.  The Transaction Services API provides various services to the application
  9480.  programmer:
  9481.  
  9482.     Transaction Demarcation
  9483.  
  9484.         - Indicate the start of a transaction.
  9485.  
  9486.         - Indicate a transaction has ended successfully (commit) or
  9487.           unsuccessfully (rollback).
  9488.  
  9489.         - Indicate the beginning and ending of nested ``subtransactions''
  9490.           whose commitment is independent of the ``parent transaction''.
  9491.           (Nested within a parent transaction can be multiple
  9492.           subtransactions.  Subtransactions are independent of each other,
  9493.  
  9494.  
  9495.               Copyright (c) 1991 IEEE.  All rights reserved.
  9496.       This is an unapproved IEEE Standards Draft, subject to change.
  9497.  
  9498.  
  9499.  
  9500.  
  9501.  124                              4 POSIX Open System Environment Services
  9502.  
  9503.  
  9504.  
  9505.  
  9506.  
  9507.  
  9508.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  9509.  
  9510.           and whether subtransactions commit or not does not affect the
  9511.           commitment of the parent.)
  9512.  
  9513.         - Suspend and resume transaction mode (to do work which is not be
  9514.           committed or rolled back when the transaction is completed).
  9515.           This can be thought of as nesting nontransaction work within a
  9516.           transaction.
  9517.  
  9518.                                                                             e
  9519.  
  9520.     Communications Between Transaction Application Programs
  9521.  
  9522.         - Call another transaction application program (possibly remote)
  9523.           within the context of a transaction.
  9524.  
  9525.         - Open a dialog and send and receive ``messages'' to and from
  9526.           another transaction application program (possibly remote) within
  9527.           the context of a transaction.
  9528.  
  9529.        NOTE:  The above services provide ``Distributed Transaction
  9530.        Processing.''                                                        e
  9531.  
  9532.     Terminal Communications
  9533.  
  9534.         - Send and receive messages to and from terminals within the
  9535.           context of a transaction (i.e., messages sent to terminals are
  9536.           not to be actually delivered unless the transaction commits).
  9537.  
  9538.     Transaction Program Scheduling
  9539.  
  9540.         - Cause to be started another transaction application program
  9541.           outside of the context of this transaction.  Involved here are
  9542.           two transactions:  one starts the other.  The actual scheduling
  9543.           of the second transaction can be dependent on the completion or
  9544.           not of the original transaction.
  9545.  
  9546.     Transaction Message Queuing
  9547.  
  9548.         - Define a ``message'' (based, possibly, on screen input from the
  9549.           end user) that, from the application point of view, precisely
  9550.           defines a unit of work to be done by this transaction or another
  9551.           transaction.
  9552.  
  9553.         - ``Send'' a message to another transaction application program.
  9554.  
  9555.         - Retrieve the next message (and then act upon it)
  9556.  
  9557.         - Prioritize and associate start times with messages
  9558.  
  9559.  
  9560.  
  9561.               Copyright (c) 1991 IEEE.  All rights reserved.
  9562.       This is an unapproved IEEE Standards Draft, subject to change.
  9563.  
  9564.  
  9565.  
  9566.  
  9567.  4.6 Transaction Processing Services                                   125
  9568.  
  9569.  
  9570.  
  9571.  
  9572.  
  9573.  
  9574.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  9575.  
  9576.           NOTE:  The actual handling of messages can be dependent on the
  9577.           completion or not of the original transaction.
  9578.  
  9579.  NOTE:  Several of the above services are similar to but semantically
  9580.  different from similar sounding services in other clauses of this
  9581.  section.  They are listed here because they are ``transactional''; i.e.,
  9582.  the concept of a transaction and the ACID properties are provided by
  9583.  these services.
  9584.  
  9585.  TP Resource Managers provide services usable by the transaction
  9586.  application program and are made visible by the TP Resource Manager API.
  9587.  An example of this is the Database API services; see 4.4.4.1.              e
  9588.  NOTE:  TP Resource Managers, in general, ``protect'' a critical resource.  e
  9589.  Databases are good examples of TP resource managers where the resource     e
  9590.  actually being protected is the data, for example, of an enterprise.       e
  9591.  Often the data of an enterprise reflects the amount of a real resource     e
  9592.  such as cash holdings.  In this case a tangible resource is indirectly     e
  9593.  protected by a TP resource manager.  The importance to the enterprise in   e
  9594.  insuring that the data (quantifying money) is accurate should be obvious.  e
  9595.  Other TP resource managers, on the other hand, could protect an actual,    e
  9596.  tangible resource.  An example of such a TP resource manager is the        e
  9597.  program that controls the cash drawer of an automated teller machine.      e
  9598.  The resource protected is the cash in the drawer.  The actual application  e
  9599.  program interface of the TP resource manager protecting that resource      e
  9600.  could include the ability to reduce the amount of money in the drawer (by  e
  9601.  pushing it out of the machine).  A transaction application program using   e
  9602.  two TP resource managers (a conventional database manager that keeps       e
  9603.  track of the balance in accounts, and the teller machine's cash drawer TP  e
  9604.  resource manager) would want to insure that the two TP resource managers   e
  9605.  decrement both the cash and the balance of the correct account in the      e
  9606.  context of a single transaction (i.e., with the ACID properties.)          e
  9607.  
  9608.  The TP Resource Manager API, then, generally provides the following        e
  9609.  services:                                                                  e
  9610.  
  9611.      - Increment or decrement a valuable resource by a certain amount.      e
  9612.  
  9613.      - Determine the amount of a valuable resource that remains.            e
  9614.  
  9615.  Specific capabilities for the very wide variety of specific TP resource    e
  9616.  managers, cannot, of course, be documented here.                           e
  9617.  
  9618.  4.6.4.2  External Environment Interface Services                           e
  9619.  
  9620.  When two or more machines are involved in the same transaction, the        e
  9621.  following service is required:                                             e
  9622.  
  9623.      - The ability for two application platforms to interoperate with each  e
  9624.        other (pass along global transaction identifiers, participate with   e
  9625.  
  9626.  
  9627.               Copyright (c) 1991 IEEE.  All rights reserved.
  9628.       This is an unapproved IEEE Standards Draft, subject to change.
  9629.  
  9630.  
  9631.  
  9632.  
  9633.  126                              4 POSIX Open System Environment Services
  9634.  
  9635.  
  9636.  
  9637.  
  9638.  
  9639.  
  9640.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  9641.  
  9642.        each other in commitment process, participate with each other in     e
  9643.        recovery).                                                           e
  9644.  
  9645.                                                                             e
  9646.  
  9647.  4.6.4.3  OLTP Resource Management Services
  9648.  
  9649.  The services listed in this subclause are not provided by application
  9650.  program interfaces or external environment interfaces.
  9651.  
  9652.      - Management Services -- Control the operation of the transaction
  9653.        processing services, including the ability to assign dispatching
  9654.        priorities to individual transaction application programs.
  9655.  
  9656.      - Monitoring Services -- Collect data on resource utilization for
  9657.        purposes such as performance analysis and accounting (data on
  9658.        utilization of the transaction processing services resources:
  9659.        processes, connection pools, ...).
  9660.  
  9661.      - Modeling Services -- Predict the system resources needed to process
  9662.        a given transaction processing workload.
  9663.  
  9664.      - Directory/Namespace Services -- Map names to addresses.
  9665.  
  9666.      - Recovery/Restart Services -- Recover and restart transactions
  9667.        involving one or more transaction application programs using one or
  9668.        more TP Resource Managers.
  9669.  
  9670.      - Test Services -- Automatically generate tests for workload
  9671.        simulation, etc.
  9672.  
  9673.      - System Configuration Services -- Replace or add transaction
  9674.        application programs without the need to shut down the execution
  9675.        environment.
  9676.  
  9677.                                                                             e
  9678.  
  9679.  
  9680.  4.6.5  Standards, Specifications, and Gaps
  9681.  
  9682.  There are currently three transaction processing standards development
  9683.  activities, either completed or in the draft stage.  Table 4-7 summarizes
  9684.  the service requirements provided by the various standards.
  9685.  
  9686.  Table 4-8 summarizes the applicability of the various standards to the
  9687.  various programming languages supported by the POSIX Open System
  9688.  Environment.
  9689.  
  9690.  
  9691.  
  9692.  
  9693.               Copyright (c) 1991 IEEE.  All rights reserved.
  9694.       This is an unapproved IEEE Standards Draft, subject to change.
  9695.  
  9696.  
  9697.  
  9698.  
  9699.  4.6 Transaction Processing Services                                   127
  9700.  
  9701.  
  9702.  
  9703.  
  9704.  
  9705.  
  9706.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  9707.  
  9708.  
  9709.               Table 4-7  -  Transaction Processing Standards
  9710.  __________________________________________________________________________________________________________________________________________________
  9711.            Service              Type        Specification        Subclause  e
  9712.  _________________________________________________________________________  e
  9713.  
  9714.  API Services                    E     IEEE P1003.11             4.6.5.2    e     ee
  9715.  
  9716.  EEI Services                    E     ISO/IEC 10026-1, -2, -3   4.6.5.2    e     ee
  9717.  
  9718.  Resource Management Services    G     -                         4.6.5.3    e     ee
  9719.  __________________________________________________________________________________________________________________________________________________
  9720.  
  9721.  
  9722.  
  9723.      Table 4-8  -  Transaction Processing Standards Language Bindings
  9724.  __________________________________________________________________________________________________________________________________________________
  9725.  Standard        LIS       Ada        APL        BASIC        C       C++   e
  9726.  ________________________________________________________________________   e
  9727.  
  9728.  POSIX.11         E                                           E             e
  9729.  
  9730.  Standard     COBOL     C-LISP     Fortran     Pascal      PL/1     Prolog  e
  9731.  _________________________________________________________________________  e
  9732.  
  9733.  POSIX.11                                                                   e
  9734.  __________________________________________________________________________________________________________________________________________________  e
  9735.  NOTES:  LIS -- Language-independent specification is available.            e
  9736.  
  9737.  Ada, APL, BASIC, -- Language-dependent specifications exist.               e
  9738.  
  9739.  S, E, G -- Standard, Emerging Standard, Gap                                e
  9740.  
  9741.  
  9742.  4.6.5.1  Current Standards
  9743.  
  9744.  None.                                                                      e
  9745.  
  9746.  4.6.5.2  Emerging Standards
  9747.  
  9748.  _O_S_I__D_i_s_t_r_i_b_u_t_e_d__T_r_a_n_s_a_c_t_i_o_n__P_r_o_c_e_s_s_i_n_g__(_D_T_P_)
  9749.  
  9750.        ISO/IEC DIS 10026-1
  9751.        ISO/IEC DIS 10026-2
  9752.        ISO/IEC DIS 10026-3
  9753.  
  9754.  These standards, developed by ISO/IEC JTC 1/SC21/WG5, deal expressly with
  9755.  the OSI services and protocols for transaction mode communications in an
  9756.  OSI environment.
  9757.  
  9758.  
  9759.               Copyright (c) 1991 IEEE.  All rights reserved.
  9760.       This is an unapproved IEEE Standards Draft, subject to change.
  9761.  
  9762.  
  9763.  
  9764.  
  9765.  128                              4 POSIX Open System Environment Services
  9766.  
  9767.  
  9768.  
  9769.  
  9770.  
  9771.  
  9772.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  9773.  
  9774.  These standards provide for some of the communications services described
  9775.  in 4.6.4.1.
  9776.  
  9777.  _P_O_S_I_X_._1_1__P_O_S_I_X__T_r_a_n_s_a_c_t_i_o_n__P_r_o_c_e_s_s_i_n_g
  9778.  
  9779.        POSIX.11
  9780.  
  9781.  The POSIX.11 working group, formed in 1989, is chartered to work on a
  9782.  profile for Transaction Processing within the POSIX OSE.  In the process
  9783.  of developing that profile, it has identified a number of gaps in the
  9784.  standards coverage and is in the process of proposing base
  9785.  standardization activities to address those gaps.  Specifically, P1003.11
  9786.  is currently working on the following services identified earlier:
  9787.  
  9788.      - Transaction Manager (TM) Services provided at the Transaction API.
  9789.  
  9790.      - Services provided at the Transaction Manager/TP Resource Manager
  9791.        (TM/TPRM) SII.  A typical TPRM is a database manager (e.g., SQL).
  9792.  
  9793.  POSIX.11 is working to assure that POSIX Transaction Processing work is
  9794.  consistent with the emerging work of OSI DTP (cited above), certain
  9795.  ongoing work of X/Open TP, several related POSIX activities (POSIX.1 {2},
  9796.  POSIX.4, POSIX.8) and the work of ANSI X3T5.5 (RPC).
  9797.  
  9798.  4.6.5.3  Gaps in Available Standards
  9799.  
  9800.  4.6.5.3.1  Public Specifications
  9801.  
  9802.  Existing standards and emerging standards do not adequately address all
  9803.  the requirements identified earlier.  While POSIX.11 is addressing some
  9804.  of the gaps, there are many other gaps still not being addressed by
  9805.  formal standards committees.  Most notable is the work of X/Open TP.
  9806.  While not formally a standards making body, it is addressing most of the
  9807.  gaps, and its output will be potentially useful as the basis of a formal
  9808.  standard.
  9809.  
  9810.  _X_/_O_p_e_n__T_P
  9811.  
  9812.  This group published an ``Online Transaction Processing Reference Model''
  9813.  in 1987 and in 1990 published ``Preliminary Specification--Distributed
  9814.  Transaction Processing: The XA Specification.''  The group is studying
  9815.  the use of OSI DTP, two-phase commit, and global transaction identifiers.
  9816.  The group is also actively exploring APIs in support of peer-to-peer
  9817.  distributed transactions.
  9818.  
  9819.  The work of this group addresses several of the services addressed in
  9820.  this clause, including transaction demarcation and conversation services.
  9821.  
  9822.  
  9823.  
  9824.  
  9825.               Copyright (c) 1991 IEEE.  All rights reserved.
  9826.       This is an unapproved IEEE Standards Draft, subject to change.
  9827.  
  9828.  
  9829.  
  9830.  
  9831.  4.6 Transaction Processing Services                                   129
  9832.  
  9833.  
  9834.  
  9835.  
  9836.  
  9837.  
  9838.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  9839.  
  9840.  Consideration is also being given to allowing alternative
  9841.  interoperability standards including proprietary mechanisms.  Additional
  9842.  APIs are being defined by X/Open TP to facilitate this.
  9843.  
  9844.  4.6.5.3.2  Unsatisfied Service Requirements
  9845.  
  9846.  Other than the work of X/Open TP, the following areas are not currently
  9847.  being addressed by standardization activities:  communications, terminal
  9848.  communications, program scheduling, message queueing, management,
  9849.  monitoring, modeling, directory/namespace, recovery/restart, test, and
  9850.  system configuration.
  9851.  
  9852.  
  9853.  4.6.6  POSIX OSE Cross-Category Services
  9854.  
  9855.  Not applicable.
  9856.  
  9857.  
  9858.  4.6.7  Related Standards
  9859.  
  9860.  _C_C_R
  9861.  
  9862.  The following standards relating to commitment are related to the ISO/IEC
  9863.  DIS 10026 series and are referenced in DIS 10026:
  9864.  
  9865.        ISO/IEC DIS 9804-3
  9866.        ISO/IEC DIS 9805-3
  9867.  
  9868.  See 4.3 for more information.
  9869.  
  9870.                                                                             e
  9871.  
  9872.  _S_Q_L__S_t_a_n_d_a_r_d__D_a_t_a_b_a_s_e__L_a_n_g_u_a_g_e
  9873.  
  9874.  The following standards for SQL also provide transaction demarcation
  9875.  services for relational database access:
  9876.  
  9877.        ANSI X3.135.1 (ISO 9075, FIPS 127)
  9878.        ANSI X3.168
  9879.  
  9880.  See 4.4
  9881.  
  9882.  
  9883.  
  9884.  
  9885.  
  9886.  
  9887.  
  9888.  
  9889.  
  9890.  
  9891.               Copyright (c) 1991 IEEE.  All rights reserved.
  9892.       This is an unapproved IEEE Standards Draft, subject to change.
  9893.  
  9894.  
  9895.  
  9896.  
  9897.  130                              4 POSIX Open System Environment Services
  9898.  
  9899.  
  9900.  
  9901.  
  9902.  
  9903.  
  9904.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  9905.  
  9906.  4.7  Graphical Window System Services                                      e
  9907.  
  9908.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _M_a_r_t_i _S_z_c_z_u_r _a_n_d _R_u_t_h _K_l_e_i_n
  9909.  
  9910.  _E_d_i_t_o_r'_s _N_o_t_e:  _V_a_r_i_a_t_i_o_n_s _o_n _t_h_e _t_e_r_m ``_h_u_m_a_n _c_o_m_p_u_t_e_r _i_n_t_e_r_a_c_t_i_o_n'' _a_n_d  _e
  9911.  _H_C_I _i_n _t_h_i_s _c_l_a_u_s_e _h_a_v_e _b_e_e_n _r_e_p_l_a_c_e_d _g_l_o_b_a_l_l_y _b_y ``_g_r_a_p_h_i_c_a_l _w_i_n_d_o_w       _e
  9912.  _s_y_s_t_e_m_s'' _w_i_t_h_o_u_t _f_u_r_t_h_e_r _d_i_f_f _m_a_r_k_s.  ``_H_u_m_a_n _u_s_e_r'' _h_a_s _a_l_s_o _b_e_e_n        _e
  9913.  _r_e_p_l_a_c_e_d _b_y ``_u_s_e_r.''                                                      _e
  9914.  
  9915.  
  9916.  4.7.1  Overview and Rationale
  9917.  
  9918.  The graphical window system interface is a key component of computer       e
  9919.  systems that support direct user-machine interaction.  Until recently,     e
  9920.  most computer operating systems interpreted commands that were typed in
  9921.  from the keyboard of an alphanumeric computer terminal.  Special purpose
  9922.  applications, such as those for CAD/CAM, have always presented user
  9923.  interfaces based on series of menus or pointing at visual displays with
  9924.  tablets and lightpens.  The availability of low-cost bitmapped graphic
  9925.  workstations and personal computers has led to the proliferation of
  9926.  graphical user interfaces (GUIs), windowing technologies, generic
  9927.  commands, and an assortment of selection techniques (e.g., mouse, track
  9928.  ball, tablets).  In several of these technologies de facto standards are
  9929.  emerging and becoming informally accepted by the user community, and with
  9930.  more frequency, mandated for use in systems being developed within
  9931.  government agencies and private industry.  The primary motivations for
  9932.  considering graphical window system standards and their relation to POSIX
  9933.  standards include:
  9934.  
  9935.      - The existence and popularity of windowing systems
  9936.  
  9937.      - The requirement for development of applications that take advantage
  9938.        of the windowing system environment
  9939.  
  9940.      - The requirement of many users and manufacturers for a basic
  9941.        consistency in the presentation and behavior of graphical window
  9942.        systems across multiple graphics platforms
  9943.  
  9944.  As the windowing system technology evolves within the graphics
  9945.  environment, the differences between windowing services and graphic
  9946.  services becomes less distinct.  The distinction for purposes of this
  9947.  document is that graphic services are associated with providing general
  9948.  purpose interfaces for creating virtually any kind of two- and three-
  9949.  dimensional graphics (e.g., GKS for 2-D and PHIGS for 3-D).  Graphical
  9950.  window system services certainly utilize graphic technologies, but are
  9951.  limited to providing graphics related to window-based user interfaces and
  9952.  specifications on how users may interact with an application within a
  9953.  window environment.  The graphic services are addressed independently in
  9954.  4.8.
  9955.  
  9956.  
  9957.               Copyright (c) 1991 IEEE.  All rights reserved.
  9958.       This is an unapproved IEEE Standards Draft, subject to change.
  9959.  
  9960.  
  9961.  
  9962.  
  9963.  4.7 Graphical Window System Services                                  131
  9964.  
  9965.  
  9966.  
  9967.  
  9968.  
  9969.  
  9970.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  9971.  
  9972.                                                                             e
  9973.  
  9974.  
  9975.  4.7.2  Scope
  9976.  
  9977.  Standards and standards initiatives in the graphical window system
  9978.  interface area cover a wide area, ranging from keyboard layout to screen
  9979.  management.  In this clause, the following specific standards are
  9980.  considered:
  9981.  
  9982.      - Protocols for window management on a local or remote display device
  9983.  
  9984.      - Application Program Interfaces (API) for such protocols
  9985.  
  9986.      - Graphical window system drivability features that define a common
  9987.        subset of ``look and feel''; i.e., appearance, screen positioning,
  9988.        and behavior of graphical window system objects within windows on a
  9989.        graphic screen
  9990.  
  9991.      - Language-independent functional specifications and appropriate
  9992.        associated language bindings for the display, manipulation, and
  9993.        management of interaction objects within windows on a graphic
  9994.        screen
  9995.  
  9996.      - Command-language interfaces that may be entered interactively by
  9997.        the user or retrieved from a stored procedure.
  9998.  
  9999.      - Language-independent functional specifications and appropriate
  10000.        associated language bindings required to support character (non-
  10001.        bitmapped) terminals.
  10002.  
  10003.      - Language-independent functional specifications and appropriate
  10004.        associated language bindings for the translation, manipulation, and
  10005.        management of command statements (or messages).
  10006.  
  10007.  Standards relating to the following are not considered:
  10008.  
  10009.      - Graphics; see 4.8.
  10010.  
  10011.      - Keyboard layout (out of scope for graphical window system services)
  10012.  
  10013.      - Network transport protocols; see 4.3.
  10014.  
  10015.      - Hardware device interfaces (out of scope for graphical window
  10016.        system services)
  10017.  
  10018.  
  10019.  
  10020.  
  10021.  
  10022.  
  10023.               Copyright (c) 1991 IEEE.  All rights reserved.
  10024.       This is an unapproved IEEE Standards Draft, subject to change.
  10025.  
  10026.  
  10027.  
  10028.  
  10029.  132                              4 POSIX Open System Environment Services
  10030.  
  10031.  
  10032.  
  10033.  
  10034.  
  10035.  
  10036.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  10037.  
  10038.  4.7.3  Reference Model
  10039.  
  10040.  This subclause identifies the entities and interfaces specific to the
  10041.  construction of a graphical window system architecture.  This
  10042.  architecture is consistent with, and extends the architecture of, Section
  10043.  3.  As illustrated in Figure 4-15, the interface components involved in
  10044.  the user interface process are divided into two groups, called the
  10045.  external environment interface (EEI) and the application program
  10046.  interface (API).
  10047.  
  10048.  _________________________________________________________________________
  10049.  
  10050.  
  10051.  
  10052.  
  10053.  
  10054.  
  10055.  
  10056.  
  10057.  
  10058.  
  10059.  
  10060.  
  10061.  
  10062.  
  10063.  
  10064.  
  10065.  
  10066.  
  10067.  
  10068.  
  10069.  
  10070.  
  10071.  
  10072.  
  10073.  
  10074.  _________________________________________________________________________
  10075.                  Figure 4-15  -  Windowing Reference Model
  10076.  
  10077.  
  10078.  The EEI is concerned with the communication with the user via the
  10079.  physical graphical window system devices (e.g., keyboard terminal, mouse,
  10080.  display screen).  The applicable EEI standards are driven primarily in
  10081.  support of user and data portability across different application
  10082.  platforms.  Standards and guidelines are intended to define a minimal set
  10083.  of commonality in graphical window systems, which will eliminate problem
  10084.  areas such as:
  10085.  
  10086.  
  10087.  
  10088.  
  10089.               Copyright (c) 1991 IEEE.  All rights reserved.
  10090.       This is an unapproved IEEE Standards Draft, subject to change.
  10091.  
  10092.  
  10093.  
  10094.  
  10095.  4.7 Graphical Window System Services                                  133
  10096.  
  10097.  
  10098.  
  10099.  
  10100.  
  10101.  
  10102.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  10103.  
  10104.      - Error provoking inconsistencies
  10105.  
  10106.      - Misleading expectations about the results of user actions
  10107.  
  10108.      - Gross inconsistencies in the high level user model or metaphor
  10109.  
  10110.      - Incompatible motor control tendencies
  10111.  
  10112.  The drivability concept derives its name from the concept of ``driving''
  10113.  an interface.  A frequently cited analogy is the automobile.  Having a
  10114.  standard location for the clutch, brake, accelerator pedals, ignition
  10115.  key, and steering wheel allows a driver to move between car models with
  10116.  relative ease (until he/she has to roll down the window, turn on the
  10117.  lights or windshield wipers!)  Similarly, the EEI drivability guidelines
  10118.  will provide standards for graphical window systems that will ensure ease
  10119.  of moving between application platform models.  For example, which mouse
  10120.  click causes an interaction object (e.g., radio button) to be selected or
  10121.  how a scroll bar should behave would be candidates for standard EEI
  10122.  specification.
  10123.  
  10124.  The API is concerned with the interface between the application semantics
  10125.  and the graphical window system services.  It is the interface between
  10126.  the application software and the application platform and is defined
  10127.  primarily in support of application portability.  These services provide
  10128.  functions for creation and manipulation of visual display objects such as
  10129.  menus, buttons, scrollbars, and dialog boxes.  In addition, these
  10130.  functions allow information about user actions to flow back to the
  10131.  application software; for example, when the user has selected an item
  10132.  from a menu.  This information about user actions is known as an event.
  10133.  Applications that require communication with the user are inherently
  10134.  event-driven.  That is, associated with an application's dialog window
  10135.  (i.e., a window in which a user response is expected) is a main event
  10136.  loop waiting for the user to make a selection that will trigger an
  10137.  operation to be performed by the application.
  10138.  
  10139.  The API will support a specific user interface policy, which will define
  10140.  the application's ``look and feel.''  Although the specific look and feel
  10141.  need not be standard across application platforms (i.e., different
  10142.  implementations of the API may have unique styles) the API definition
  10143.  shall ensure that the application software can be ported across POSIX
  10144.  platforms; and the API shall support the EEI drivability guidelines,
  10145.  enabling users to easily operate the application across platforms.
  10146.  
  10147.  Elements of the graphical window system architecture are Application
  10148.  Software Elements, Application Program Interface (API) elements, and
  10149.  External Environment Interface (EEI) elements.  These elements are linked
  10150.  by the use of common concepts and definitions associated with the
  10151.  graphical window system entities, interfaces, services, and standards.
  10152.  
  10153.  
  10154.  
  10155.               Copyright (c) 1991 IEEE.  All rights reserved.
  10156.       This is an unapproved IEEE Standards Draft, subject to change.
  10157.  
  10158.  
  10159.  
  10160.  
  10161.  134                              4 POSIX Open System Environment Services
  10162.  
  10163.  
  10164.  
  10165.  
  10166.  
  10167.  
  10168.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  10169.  
  10170.  4.7.3.1  Application Software Elements
  10171.  
  10172.  Application Entity Elements include:
  10173.  
  10174.      (1)  Window System Server
  10175.  
  10176.           The Window System Server provides a function that handles
  10177.           communication connections from clients, demultiplexes graphics
  10178.           requests onto the screens, and multiplexes input back to the
  10179.           appropriate client.  Applications and other programs that use
  10180.           basic windowing services are called ``clients.''  Many clients
  10181.           may talk to the same server.  All application requests to write
  10182.           to the screen must go through the server via the basic windowing
  10183.           services.  The server is independent of operating system,
  10184.           programming languages, or network communication.
  10185.  
  10186.      (2)  Window Manager
  10187.  
  10188.           A Window Manager provides a uniform method for manipulating
  10189.           windows, which includes a basic set of window management
  10190.           capabilities that allow for development of alternative and/or
  10191.           user-preferred window managers.  Required graphical window
  10192.           system capabilities shall include, but are not limited to:
  10193.  
  10194.            - Resize window
  10195.  
  10196.            - Move window
  10197.  
  10198.            - Push/pop window to top/bottom
  10199.  
  10200.            - Shrink window to a reduced visual representation of window
  10201.              (i.e., frequently referred to as an icon of the window)
  10202.  
  10203.      (3)  Local and Remote Applications
  10204.  
  10205.           These applications are clients that provide the functions
  10206.           required to perform the specific task(s) that the user needs to
  10207.           achieve (e.g., spreadsheets, scientific analysis systems, CASE
  10208.           tools, process and control tasks.)
  10209.  
  10210.  4.7.3.2  Application Program Interface (API) Elements
  10211.  
  10212.  The API are language binding specifications that define the services
  10213.  available to the application programmer.  API Elements are: basic window
  10214.  services, toolkit window services, and dialog services.
  10215.  
  10216.  
  10217.  
  10218.  
  10219.  
  10220.  
  10221.               Copyright (c) 1991 IEEE.  All rights reserved.
  10222.       This is an unapproved IEEE Standards Draft, subject to change.
  10223.  
  10224.  
  10225.  
  10226.  
  10227.  4.7 Graphical Window System Services                                  135
  10228.  
  10229.  
  10230.  
  10231.  
  10232.  
  10233.  
  10234.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  10235.  
  10236.  4.7.3.3  External Environment Interface (EEI) Elements
  10237.  
  10238.  The EEI elements are specifications (and in some cases, aspects of
  10239.  physical objects) that define how the application platform interacts with
  10240.  the external world.  Note that application software, as defined here,
  10241.  interacts with the outside world only via the application platform.
  10242.  
  10243.  External Environment Interface Elements include:
  10244.  
  10245.      - Display Device Specifications
  10246.  
  10247.      - Data Protocol Format
  10248.  
  10249.      - User Drivability Guidelines (e.g., ``look and feel'' of window
  10250.        interface)
  10251.  
  10252.      - Keyboard Device Specification
  10253.  
  10254.      - Selection Device Specification (e.g., mouse, graphics tablet, touch
  10255.        screen)
  10256.  
  10257.      - Command-language Definition (syntax and semantics guidelines)
  10258.  
  10259.  
  10260.  4.7.4  Service Requirements
  10261.  
  10262.  Graphical window system services provide a controlled interface between
  10263.  the application-specific software and the user-interface-specific
  10264.  software, allowing each to be designed and implemented separately.  Users
  10265.  of these services include all POSIX system users and those charged with
  10266.  maintaining the processor and graphical window system communication.  A
  10267.  common, standardized graphical window system for applications should be    e
  10268.  available to users across all POSIX Open System Environments.
  10269.  
  10270.  Services shall support raster (i.e., bitmapped) graphics displays.
  10271.  Methods for supporting vector graphics displays can be addressed, but are
  10272.  not mandatory.
  10273.  
  10274.  4.7.4.1  Application Program Interface Services
  10275.  
  10276.  Application services include those services made available to the
  10277.  application developer to separate the application functions from the
  10278.  graphical window system functions as much as possible.  They include such
  10279.  areas as screen management, windowing, and user input device services.
  10280.  
  10281.  These standard services support requirements for application portability,
  10282.  software commonality, application interoperability and data
  10283.  communications transparency.
  10284.  
  10285.  
  10286.  
  10287.               Copyright (c) 1991 IEEE.  All rights reserved.
  10288.       This is an unapproved IEEE Standards Draft, subject to change.
  10289.  
  10290.  
  10291.  
  10292.  
  10293.  136                              4 POSIX Open System Environment Services
  10294.  
  10295.  
  10296.  
  10297.  
  10298.  
  10299.  
  10300.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  10301.  
  10302.  A programmer may access the following services for an application via      e
  10303.  language bindings.
  10304.  
  10305.  4.7.4.1.1  Basic Window Services
  10306.  
  10307.  The basic window services, callable from client applications, support a
  10308.  window-based user interface.  They should be based on a ``client-server''
  10309.  model.  The server is a program that handles communication connections
  10310.  from clients, demultiplexes graphics requests onto the screens, and
  10311.  multiplexes input back to the appropriate client.  Many clients may talk
  10312.  to the same server.  All application requests to write to the screen must
  10313.  go through the server via the basic windowing services.
  10314.  
  10315.  The major functional areas are:
  10316.  
  10317.      - Window Management
  10318.  
  10319.      - Presentation Management
  10320.  
  10321.      - Event Handling
  10322.  
  10323.      - Error Handling
  10324.  
  10325.      - Interclient Communications
  10326.  
  10327.      - Input Device Management: Keyboard, Pointing Device
  10328.  
  10329.      - Screen Management
  10330.  
  10331.      - User Preferences Management
  10332.  
  10333.      - Server Connection Management
  10334.  
  10335.  The following functions are available under each functional area.
  10336.  
  10337.  _W_i_n_d_o_w__M_a_n_a_g_e_m_e_n_t
  10338.  
  10339.  Functions available for Window Management are:
  10340.  
  10341.      - Create a window, map a window onto the screen, delete a window
  10342.        (includes support for character-based emulator window)
  10343.  
  10344.      - Manipulate a window (move, resize, change view precedence)
  10345.  
  10346.      - Manipulate window attributes (set, get, change; attributes may be
  10347.        related to appearance, redraw performance, event handling, or
  10348.        change authority)
  10349.  
  10350.  
  10351.  
  10352.  
  10353.               Copyright (c) 1991 IEEE.  All rights reserved.
  10354.       This is an unapproved IEEE Standards Draft, subject to change.
  10355.  
  10356.  
  10357.  
  10358.  
  10359.  4.7 Graphical Window System Services                                  137
  10360.  
  10361.  
  10362.  
  10363.  
  10364.  
  10365.  
  10366.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  10367.  
  10368.      - Seize and relinquish control over the Server for display purposes
  10369.        (permits uninterrupted client output; output requests from other
  10370.        clients will be queued and displayed later)
  10371.  
  10372.  _P_r_e_s_e_n_t_a_t_i_o_n__M_a_n_a_g_e_m_e_n_t
  10373.  
  10374.  Functions available for Presentation Management are:
  10375.  
  10376.      - Associate data with a window (context manager functions and
  10377.        association table functions)
  10378.  
  10379.      - Manipulate the graphics context for a given object (create a
  10380.        graphics context, obtain current graphics context, change graphics
  10381.        context)                                                             e
  10382.  
  10383.      - Get and set fonts (load font, list fonts, unload font)               e
  10384.  
  10385.      - Draw graphics primitives (draw arc, draw line, fill rectangle,
  10386.        clear rectangular window, clear entire window)                       e
  10387.  
  10388.      - Manipulate window cursors (create, destroy, assign, change)          e
  10389.  
  10390.      - Draw text and obtain text metric information
  10391.  
  10392.  _E_v_e_n_t__H_a_n_d_l_i_n_g
  10393.  
  10394.  The basic window services support application requirements to respond to
  10395.  the user's actions, rather than forcing the user to respond to the
  10396.  application in a rigid, serialized manner.  This requirement necessitates
  10397.  that a program either (1) be capable of handling any one of a number of
  10398.  events at any single point in time, or (2) attach a routine to each event
  10399.  to be called automatically when that event occurs.  There is a separate
  10400.  set of events for each window used by the application.  An application
  10401.  selects the events for a particular window, maps the selected events to
  10402.  the window, and reads events from the event queue as they occur.  There
  10403.  are three major types of events:
  10404.  
  10405.      - Input device events (button press event, keypress event)             e
  10406.  
  10407.      - Window management events (window exposure event, colormap event)     e
  10408.  
  10409.      - Client message events (selection data transferred (by another
  10410.        application) event, private interclient communication event)         e
  10411.  
  10412.  Functions available for Event Handling are:
  10413.  
  10414.      - Select events
  10415.  
  10416.  
  10417.  
  10418.  
  10419.               Copyright (c) 1991 IEEE.  All rights reserved.
  10420.       This is an unapproved IEEE Standards Draft, subject to change.
  10421.  
  10422.  
  10423.  
  10424.  
  10425.  138                              4 POSIX Open System Environment Services
  10426.  
  10427.  
  10428.  
  10429.  
  10430.  
  10431.  
  10432.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  10433.  
  10434.      - Map events to a window
  10435.  
  10436.      - Get information about events
  10437.  
  10438.      - Send events
  10439.  
  10440.  _E_r_r_o_r__H_a_n_d_l_i_n_g
  10441.  
  10442.  Functions available for Error Handling are:
  10443.  
  10444.      - Get error message
  10445.  
  10446.      - Get error description
  10447.  
  10448.      - Set error event handler routine
  10449.  
  10450.  _I_n_t_e_r_c_l_i_e_n_t__C_o_m_m_u_n_i_c_a_t_i_o_n
  10451.  
  10452.  The basic window services are required to be network transparent to an
  10453.  application or client.  This means that an application on one host may
  10454.  write to the display screen connected to another host without being aware
  10455.  that networking is involved.  The basic window services handle the
  10456.  network connections and follow the protocols necessary for the
  10457.  application to interact with the display.  This convention allows
  10458.  redistribution of applications in a networked system with no effect on
  10459.  the application software.  Therefore, an application client cannot assume
  10460.  that another client can open the same files or seize the same processing
  10461.  environment.  Interclient communication via the server has three forms:
  10462.  
  10463.      - Properties
  10464.  
  10465.        Clients may associate arbitrary information with a window;
  10466.        generally used for communication between a client and the window
  10467.        manager.
  10468.  
  10469.      - Selections
  10470.  
  10471.        Selections are selected by the user out of one client's window,
  10472.        then ``sent'' to another client and displayed in the second
  10473.        client's window.
  10474.  
  10475.      - Cut Buffers
  10476.  
  10477.        Cut Buffers are a specialized form of communication.  It is
  10478.        possible to receive notification when a cut buffer (property) is
  10479.        set.
  10480.  
  10481.  Functions available for Interclient Communication are:
  10482.  
  10483.  
  10484.  
  10485.               Copyright (c) 1991 IEEE.  All rights reserved.
  10486.       This is an unapproved IEEE Standards Draft, subject to change.
  10487.  
  10488.  
  10489.  
  10490.  
  10491.  4.7 Graphical Window System Services                                  139
  10492.  
  10493.  
  10494.  
  10495.  
  10496.  
  10497.  
  10498.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  10499.  
  10500.      - Manipulate window properties (list, delete, change, get)             e
  10501.  
  10502.      - Set and get selections
  10503.  
  10504.      - Manipulate cut buffers
  10505.  
  10506.  _I_n_p_u_t__D_e_v_i_c_e__M_a_n_a_g_e_m_e_n_t
  10507.  
  10508.  Functions available for Input Device Management are:
  10509.  
  10510.      - Receive keyboard input and pointing device button events
  10511.  
  10512.      - Gain exclusive control of keyboard or pointing cursor
  10513.  
  10514.      - Track the pointing cursor
  10515.  
  10516.      - Change Server-wide keyboard mappings
  10517.  
  10518.      - Set and get keyboard and pointing device preferences
  10519.  
  10520.  _S_c_r_e_e_n__M_a_n_a_g_e_m_e_n_t
  10521.  
  10522.  Functions available for Screen Management are:
  10523.  
  10524.      - Manipulate color using colormaps (copy, change, install, deinstall,
  10525.        get default)                                                         e
  10526.  
  10527.      - Get, display, and manipulate bitmapped screen images
  10528.  
  10529.      - Screen saver functions (blanking screen on idle)
  10530.  
  10531.      - Retrieve display information (default colormap, number of display
  10532.        planes, screen width and height)                                     e
  10533.  
  10534.  _U_s_e_r__P_r_e_f_e_r_e_n_c_e_s__M_a_n_a_g_e_m_e_n_t
  10535.  
  10536.  The services and data structures used for managing user preferences are
  10537.  provided and collectively referred to as User Preferences Management.      e
  10538.  There may be up to four sets of options that need to be read and merged:
  10539.  
  10540.      - The user's defaults stored in the root window's user resource
  10541.        manager property
  10542.  
  10543.      - The user's defaults stored in a user's defaults file
  10544.  
  10545.      - The application program's defaults
  10546.  
  10547.      - The command line arguments
  10548.  
  10549.  
  10550.  
  10551.               Copyright (c) 1991 IEEE.  All rights reserved.
  10552.       This is an unapproved IEEE Standards Draft, subject to change.
  10553.  
  10554.  
  10555.  
  10556.  
  10557.  140                              4 POSIX Open System Environment Services
  10558.  
  10559.  
  10560.  
  10561.  
  10562.  
  10563.  
  10564.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  10565.  
  10566.  Functions available for User Preferences Management are:
  10567.  
  10568.      - Set and get preference data
  10569.  
  10570.  _S_e_r_v_e_r__C_o_n_n_e_c_t_i_o_n__M_a_n_a_g_e_m_e_n_t
  10571.  
  10572.  Functions available for Server Connection Management are:
  10573.  
  10574.      - Control access to the Server [add host to the access control list
  10575.        (ACL), list ACL, disable ACL]                                        e
  10576.  
  10577.      - Connect and disconnect a client from a Server (and the display
  10578.        controlled by the Server)
  10579.  
  10580.      - Obtain Server implementation information
  10581.  
  10582.      - Flush output buffer to Server and wait for Server to process all
  10583.        events in the output buffer
  10584.  
  10585.  4.7.4.1.2  Toolkit Window Services
  10586.  
  10587.  The Toolkit Window services provide a mechanism for runtime access to a
  10588.  library of visual objects.  A visual object is a graphical display object
  10589.  (i.e., interaction object) with associated software that receives input
  10590.  from users (typically via a keyboard and a pointing device) and
  10591.  communicates with applications and other visual object software.  The
  10592.  graphical representation of a visual object can be modified to reflect
  10593.  the results of application processing.  Examples of visual objects are
  10594.  graphical push buttons, check boxes, and editing boxes.  (Note: The term
  10595.  used within the X Window System community to define visual objects is
  10596.  ``widgets.'')
  10597.  
  10598.  Toolkit Window services are provided for two reasons:
  10599.  
  10600.      - To allow application software to directly utilize a visual object
  10601.        library
  10602.  
  10603.      - To allow application-specific visual objects to be created and
  10604.        added to the widget library (Note:  creating a visual object
  10605.        includes writing software that uses the Toolkit services)
  10606.  
  10607.  Therefore, Toolkit services may be logically divided into two categories,
  10608.  with some overlap:  Visual Object Interface Services, which are called by
  10609.  an application or dialog service, and Visual Object Programming Services,
  10610.  which are called by the visual object software.
  10611.  
  10612.  An application may use Toolkit Window services to:
  10613.  
  10614.  
  10615.  
  10616.  
  10617.               Copyright (c) 1991 IEEE.  All rights reserved.
  10618.       This is an unapproved IEEE Standards Draft, subject to change.
  10619.  
  10620.  
  10621.  
  10622.  
  10623.  4.7 Graphical Window System Services                                  141
  10624.  
  10625.  
  10626.  
  10627.  
  10628.  
  10629.  
  10630.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  10631.  
  10632.      - Perform toolkit initialization/exit
  10633.  
  10634.      - Set up visual object resources
  10635.  
  10636.      - Create/delete a visual object
  10637.  
  10638.      - Display a visual object
  10639.  
  10640.      - Add/remove application-specific routines to be called by a visual
  10641.        object (event callbacks)
  10642.  
  10643.      - Retrieve/modify the state of a visual object
  10644.  
  10645.      - Turn control over to the toolkit for user input processing
  10646.  
  10647.  A visual object software program may use Toolkit Window services to:
  10648.  
  10649.      - Manage child visual objects (a child visual object is a visual
  10650.        object that is displayed inside of another visual object)
  10651.  
  10652.      - Manage window events, timer events, and file input events
  10653.  
  10654.      - Handle visual object geometry (sizing, positioning, child visual
  10655.        object placement)
  10656.  
  10657.      - Handle user input
  10658.  
  10659.      - Manage visual object resources
  10660.  
  10661.      - Translate an event into an action
  10662.  
  10663.      - Manipulate graphics contexts
  10664.  
  10665.      - Manipulate pixmaps (pixel arrays--used to display a graphical
  10666.        object by turning pixels on and off)
  10667.  
  10668.      - Manage memory associated with graphical window systems
  10669.  
  10670.      - Handle errors associated with graphical window systems
  10671.  
  10672.      - Allow inter-visual object communication (via the selection
  10673.        mechanism)
  10674.  
  10675.      - Initiate other visual object routines (visual object event
  10676.        callbacks)
  10677.  
  10678.      - Initiate application-specific routines that have been associated
  10679.        with the visual object by the application (application event
  10680.        callbacks)
  10681.  
  10682.  
  10683.               Copyright (c) 1991 IEEE.  All rights reserved.
  10684.       This is an unapproved IEEE Standards Draft, subject to change.
  10685.  
  10686.  
  10687.  
  10688.  
  10689.  142                              4 POSIX Open System Environment Services
  10690.  
  10691.  
  10692.  
  10693.  
  10694.  
  10695.  
  10696.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  10697.  
  10698.  4.7.4.1.3  Dialog Services
  10699.  
  10700.  Dialog services provide functions to support high-level graphical window
  10701.  system management for applications with the primary goal of delivering
  10702.  user inputs to the application program and application-driven information
  10703.  to the user.  The dialog services allow for a separation of the user
  10704.  interface specifications from the application program.  For example,
  10705.  there are many applications that are not concerned with whether a user
  10706.  entry object is a pull-down menu or a scrollable list.  These
  10707.  applications are only interested in what the user specified or selected
  10708.  from the user entry object (i.e., the parameter value), which will then
  10709.  trigger some action by the application.  To support this notion, a single
  10710.  dialog function might be specified for displaying a window made up of a
  10711.  composite of visual display objects, such as radio buttons, text key-in
  10712.  objects, and scrollable text lists.  The application program does not
  10713.  need to manage or understand what the look, location, or visual feedback
  10714.  of any of these items will be.  The dialog function has access to the
  10715.  presentation information required to display the specified window and it
  10716.  handles the display of the application specified window.  Another dialog
  10717.  service would provide a high-level event loop that returns the user
  10718.  specified input as an application parameter value.
  10719.  
  10720.  The services provide simplicity over the degree of freedom available in
  10721.  Basic and Toolkit Window Services.  Most User Interface Management
  10722.  Systems (UIMSs) provide dialog services to fulfill their requirement of
  10723.  separation of user interface from application software.
  10724.  
  10725.  These services are subdivided into:
  10726.  
  10727.      - Window services: provide services used to initialize the window
  10728.        service, create and delete windows with predefined associated
  10729.        visual objects, and manipulation of the pointing cursor.  They
  10730.        include services that allow the application to communicate directly
  10731.        with the user via modal or modeless windows.
  10732.  
  10733.      - Visual object manipulation services: provide services used to
  10734.        access the graphical window system designed by the application
  10735.        designer, display the visual objects defined by the graphical
  10736.        window system, and associate them with application-tied inputs and
  10737.        outputs.
  10738.  
  10739.      - Event control services: provide services to allow the application
  10740.        to define a set of events and handle triggered events in one of two
  10741.        ways:
  10742.  
  10743.         +o Wait on the occurrence of any event, processing triggered events
  10744.           one at a time from an input queue (event-driven method)
  10745.  
  10746.  
  10747.  
  10748.  
  10749.               Copyright (c) 1991 IEEE.  All rights reserved.
  10750.       This is an unapproved IEEE Standards Draft, subject to change.
  10751.  
  10752.  
  10753.  
  10754.  
  10755.  4.7 Graphical Window System Services                                  143
  10756.  
  10757.  
  10758.  
  10759.  
  10760.  
  10761.  
  10762.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  10763.  
  10764.         +o Attach to each event a function that is automatically executed
  10765.           when the event is triggered (callback method)
  10766.  
  10767.  4.7.4.2  External Environment Interface Services
  10768.  
  10769.  These services provide support for the actual elements with which the
  10770.  user physically interacts.  These functions provide services in three
  10771.  areas:
  10772.  
  10773.      - Graphical window system:  provides definition of the presentation
  10774.        and behavior of the visual display objects, command language
  10775.        definition (syntax and semantics), specifications related to
  10776.        keyboards, selection devices, audio and video input/output devices.
  10777.  
  10778.      - Information Interfaces: provides specification of user resource
  10779.        data formats, containing presentation and action information
  10780.        pertaining to visual display objects.
  10781.  
  10782.      - Network Interfaces: provides protocol services for data transport,
  10783.        which is basically the bottom six layers of the OSI model
  10784.  
  10785.  4.7.4.3  Interapplication Entity Services
  10786.  
  10787.  These services provide support for general conventions and specifications
  10788.  for interaction between graphical window system components.  The services
  10789.  provide support for generalized network/multisession services, such as
  10790.  message handling between graphical window system components, intermediate
  10791.  language definition, and a standard definition of the format used for
  10792.  saving the presentation, behavior, and action information about graphical
  10793.  window system objects.
  10794.  
  10795.  4.7.4.4  Windowing Resource Management Services
  10796.  
  10797.  These services provide general management functions across the graphical
  10798.  window system components, which include system administration-oriented
  10799.  functions (i.e., management of graphical window systems within the scope
  10800.  of the administrator, such as setting up defaults and user customization
  10801.  functions.  For instance, it is important to allow reconfiguration and
  10802.  addition of terminals and displays without affecting the application
  10803.  interface.)  These resource management services are independent from the
  10804.  OLTP Resource Management Services defined in 4.6.4.3.
  10805.  
  10806.  A standard definition of the format used for saving the presentation,      e
  10807.  behavior, and action information about graphical window system objects     e
  10808.  would provide a vehicle for exchanging graphical window system             e
  10809.  information between software tools, such as User Interface Management      e
  10810.  Systems (UIMSs) and Interface Design Tool (ITDs).                          e
  10811.  
  10812.  
  10813.  
  10814.  
  10815.               Copyright (c) 1991 IEEE.  All rights reserved.
  10816.       This is an unapproved IEEE Standards Draft, subject to change.
  10817.  
  10818.  
  10819.  
  10820.  
  10821.  144                              4 POSIX Open System Environment Services
  10822.  
  10823.  
  10824.  
  10825.  
  10826.  
  10827.  
  10828.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  10829.  
  10830.  4.7.5  Standards, Specifications, and Gaps
  10831.  
  10832.  Standards that relate to the user reference model presented earlier are
  10833.  considered here.  Related standards that might be relevant for one or
  10834.  more of the interface components will also be mentioned.
  10835.  
  10836.  4.7.5.1  Current Standards
  10837.  
  10838.  No current international or national standards exist for the graphical
  10839.  window system services, primarily due to the recent emergence of the
  10840.  windowing technology.  However, several standard activities are underway
  10841.  and referenced under 4.7.5.2.
  10842.  
  10843.  
  10844.                      Table 4-9  -  Windowing Standards
  10845.  __________________________________________________________________________________________________________________________________________________
  10846.              Service                Type          Specification           Subclausee
  10847.  __________________________________________________________________________________e
  10848.  
  10849.  Basic Window Services               G     X Window System (X-lib)        4.7.5.3  e       ee
  10850.                                      E     ANSI X3K13.6                   4.7.5.2  e       ee
  10851.  
  10852.  Toolkit Window Services             G     X Window System (Xtk)          4.7.5.3  e       ee
  10853.                                      E     ANSI X3K13.6                   4.7.5.2  e       ee
  10854.                                      E     IEEE POSIX.2                   4.7.5.2  e       ee
  10855.                                      E     IEEE POSIX.1 {2}               4.7.5.2  e       ee
  10856.  
  10857.  Dialog Services                     G     -                              4.7.5.3  e       ee
  10858.  
  10859.  EEI Services                        E     ANSI X3V1.9                    4.7.5.2  e       ee
  10860.                                      E     ISO/IEC JTC 1/SC18/WG19        4.7.5.2  e       ee
  10861.                                      E     ANSI HSF-HCI                   4.7.5.2  e       ee
  10862.                                      E     ISO TC159/SC4/WG5              4.7.5.2  e       ee
  10863.                                      E     P1201.2                        4.7.5.2  e       ee
  10864.  
  10865.  Interapplication Entity Services    G     X Window System (X protocol)   4.7.5.3  e       ee
  10866.  
  10867.  Window/Character Resource           G     -                              4.7.5.3  e       ee
  10868.        Management Services                                                         e
  10869.  __________________________________________________________________________________________________________________________________________________
  10870.  
  10871.  
  10872.  4.7.5.2  Emerging Standards
  10873.  
  10874.      - ANSI X3K13.6.  Currently developing an X Protocol standard.
  10875.  
  10876.      - ANSI X3V1.9.  User-System Interfaces and Symbols:  Working on a
  10877.        ISO/IEC Standard 9995, Keyboard Layouts for Text and Office
  10878.        Systems.  Also working on the Voice Messaging User Interface Forum
  10879.  
  10880.  
  10881.               Copyright (c) 1991 IEEE.  All rights reserved.
  10882.       This is an unapproved IEEE Standards Draft, subject to change.
  10883.  
  10884.  
  10885.  
  10886.  
  10887.  4.7 Graphical Window System Services                                  145
  10888.  
  10889.  
  10890.  
  10891.  
  10892.  
  10893.  
  10894.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  10895.  
  10896.        (VMUIF).  This is a mirror standards effort with ISO/IEC
  10897.        JTC 1/SC18/WG19.
  10898.  
  10899.      - ISO/IEC JTC 1/SC18/WG19.  User-System Interfaces and Symbols.
  10900.        Working on developing standards for user interfaces and symbols
  10901.        associated with text and office systems.
  10902.  
  10903.      - ANSI HFS-HCI.  Working on drafts on the design process, information
  10904.        presentation, forms-based dialogs, and window-based interaction.
  10905.  
  10906.      - ISO TC159/SC4/WG5.  Software Ergonomics and Man-Machine Dialog:
  10907.        Working on developing parts of the ISO Standards 9241, Ergonomics
  10908.        of Visual Display Terminals.  Their areas of concentration are
  10909.        software ergonomics, dialog principles, dialog styles, methods for
  10910.        evaluating software usability, coding and formatting of
  10911.        information, and terminology
  10912.  
  10913.      - IEEE P1201.  Application and User Portability:  Chartered to
  10914.        develop standards that facilitate application and user portability
  10915.        in the X Windows environment.  P1201.1 is involved in defining a
  10916.        set of virtual toolkit services that would be independent of any
  10917.        windowing system.  P1201.2 is involved in defining drivability
  10918.        guidelines.
  10919.  
  10920.      - ANSI CODASYL.  Working draft available for Forms Interface
  10921.        Management Systems (FIMS), which covers the interface between a
  10922.        programming language and any form fill-in application on a computer
  10923.        or terminal screen.
  10924.  
  10925.  4.7.5.3  Gaps in Available Standards
  10926.  
  10927.  There is a de facto standard for the base window system.  The X Window
  10928.  System windowing protocol and the Xlib functional interface to the
  10929.  protocol were developed at Massachusetts Institute of Technology.
  10930.  Development is continuing under the aegis of the X Consortium, a group of
  10931.  interested parties in the computer industry and computer manufacturers.
  10932.  Relevant documents from the X Consortium are ``X Window System Protocol,
  10933.  X Version 11,'' ``Xlib - C language X Interface,'' ``X Toolkit Intrinsics
  10934.  - C Language Interface,'' and ``Bitmap Distribution Format 2.1.''
  10935.  
  10936.  The X Window System protocol and functional interface are considered to
  10937.  be de facto standards in the base window system area because of their
  10938.  widespread adoption by major computer vendors and industry groups.
  10939.  
  10940.  Within the government, the National Institute of Standards and Technology
  10941.  (NIST) issues Federal Information Processing Standards (FIPS) that
  10942.  require purchases made by the United States Government to adhere to
  10943.  certain standards.  NIST has adopted the X Window System Version 11
  10944.  Release 3's X Window System protocol, Xlib, Xt Intrinsics, and Bitmap
  10945.  
  10946.  
  10947.               Copyright (c) 1991 IEEE.  All rights reserved.
  10948.       This is an unapproved IEEE Standards Draft, subject to change.
  10949.  
  10950.  
  10951.  
  10952.  
  10953.  146                              4 POSIX Open System Environment Services
  10954.  
  10955.  
  10956.  
  10957.  
  10958.  
  10959.  
  10960.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  10961.  
  10962.  Distribution Format as FIPS 158.  This is a noncompulsory (i.e.,
  10963.  voluntary) standard.
  10964.  
  10965.      - Object Definition File Format:  There are no standards addressing
  10966.        the format used for describing the ``look and feel'' of graphical
  10967.        window system objects.
  10968.  
  10969.      - Toolkit Services
  10970.  
  10971.      - Dialog Services
  10972.  
  10973.      - Interapplication Entity Services
  10974.  
  10975.  
  10976.  4.7.6  OSE Cross-Category Services
  10977.  
  10978.  4.7.6.1  Security
  10979.  
  10980.  The security aspects of graphical window systems and include:              e
  10981.  
  10982.      - Authentication of person at login
  10983.  
  10984.      - Authentication of person when a service request is made to a client
  10985.        application
  10986.  
  10987.      - Provisions for visual labeling of sensitive material
  10988.  
  10989.      - Option selections available in support of sensitive activities
  10990.  
  10991.      - Prevention of moving data (cut/past) from a more protected security
  10992.        environment to a less protected environment
  10993.  
  10994.  
  10995.  4.7.7  Related Standards
  10996.  
  10997.  Currently, the basic windowing services provide a certain level of
  10998.  graphics functionality, but the existing and proposed graphics standards
  10999.  (e.g., PHIGS, GKS) provide a much more comprehensive solution to graphic
  11000.  support.  As the graphics and windowing technologies evolve, this
  11001.  distinction between the windowing and graphics services will continue to
  11002.  be blurred.  For instance, proposals are already being developed that
  11003.  provide extensions to the X Window System that support 3-D graphics
  11004.  (i.e., PEX, PHIGS EXtensions), and implementations of GKS are currently
  11005.  available that use the X Window System to create the graphics.
  11006.  
  11007.  
  11008.  
  11009.  
  11010.  
  11011.  
  11012.  
  11013.               Copyright (c) 1991 IEEE.  All rights reserved.
  11014.       This is an unapproved IEEE Standards Draft, subject to change.
  11015.  
  11016.  
  11017.  
  11018.  
  11019.  4.7 Graphical Window System Services                                  147
  11020.  
  11021.  
  11022.  
  11023.  
  11024.  
  11025.  
  11026.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  11027.  
  11028.  4.7.8  Open Issues
  11029.  
  11030.      - Audio input/output
  11031.  
  11032.      - Video input/output
  11033.  
  11034.      - Security
  11035.  
  11036.      - Desktop.  The Desktop, or graphical windowing shell, is a
  11037.        specification for the graphical window system work surface (i.e.,
  11038.        the entire display screen).
  11039.  
  11040.        The desktop provides the user with a visual interface to available
  11041.        computer resources.  A desktop may be characterized as a visual
  11042.        analog of the POSIX shell.  It provides access to system resources,
  11043.        such as devices and files, and provides methods to start
  11044.        applications.  Desktops typically also provide a set of often used
  11045.        utilities such as a calendar, a notepad, etc.  The desktop is an
  11046.        important component of the look and feel of a graphical window
  11047.        system, but the current state of the industry is too immature for
  11048.        any standardization to materialize on a desktop specification in
  11049.        the immediate future.
  11050.        NOTE:  There are some valid arguments for defining some
  11051.        requirements for standards at this level.  The goal is to enable a
  11052.        user to easily go between application platforms and operate common
  11053.        functions in a similar manner.
  11054.  
  11055.  
  11056.  
  11057.  
  11058.  
  11059.  
  11060.  
  11061.  
  11062.  
  11063.  
  11064.  
  11065.  
  11066.  
  11067.  
  11068.  
  11069.  
  11070.  
  11071.  
  11072.  
  11073.  
  11074.  
  11075.  
  11076.  
  11077.  
  11078.  
  11079.               Copyright (c) 1991 IEEE.  All rights reserved.
  11080.       This is an unapproved IEEE Standards Draft, subject to change.
  11081.  
  11082.  
  11083.  
  11084.  
  11085.  148                              4 POSIX Open System Environment Services
  11086.  
  11087.  
  11088.  
  11089.  
  11090.  
  11091.  
  11092.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  11093.  
  11094.  4.8  Graphics Services
  11095.  
  11096.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _J_o_h_n _W_i_l_l_i_a_m_s
  11097.  
  11098.  
  11099.  4.8.1  Overview and Rationale
  11100.  
  11101.  Graphics Services are key components and play an important role in the
  11102.  POSIX Open System Environment as it is used today in many different areas
  11103.  of industry, business, government, education, entertainment, and most
  11104.  recently, the home.  The number of applications is growing rapidly, with
  11105.  increasing graphics capabilities.  Some of these areas are user
  11106.  interfaces, computer-aided drafting and design, electronic publishing,
  11107.  plotting, simulation, animation, scientific visualization, art, and
  11108.  process control.  The use of pictorial graphics provides a more intuitive
  11109.  interface and thus facilitates man/machine interaction.
  11110.  
  11111.  Graphics has become a routine part of most organizations today, ranging
  11112.  from hardcopy graphs and charts to user interfaces and complex 3-D
  11113.  visualizations incorporating video and sound.  The graphics technology of
  11114.  rendering objects has become dramatically more realistic and hence is
  11115.  used by engineers, architects, artists etc., to enable them to see
  11116.  precisely what their final products, whether automobiles or buildings,
  11117.  will look and behave like under real-world conditions.
  11118.  
  11119.  Graphics has allowed dramatic improvements in the ``look and feel'' of
  11120.  user interfaces and the trend is towards increasing use of these
  11121.  interfaces to interact with computers graphically, via windows and icons
  11122.  and this reduces the time involved in learning to use a computer.
  11123.  
  11124.  Standardization of graphics services has many benefits for application
  11125.  developers, users, and systems integrators.  The underlying motivations
  11126.  for considering graphics standards and their relation to the POSIX Open
  11127.  System Environment include:
  11128.  
  11129.      (1)  Portability:  In order to protect investment and achieve
  11130.           independence from a particular technology and a particular
  11131.           supplier of technology, portability at both hardware and
  11132.           software levels is necessary.  There are many aspects of
  11133.           portability within graphics, all of which are potential money
  11134.           and time savers.
  11135.  
  11136.            - Applications portability
  11137.  
  11138.            - Graphics package portability
  11139.  
  11140.            - Host machine independence
  11141.  
  11142.  
  11143.  
  11144.  
  11145.               Copyright (c) 1991 IEEE.  All rights reserved.
  11146.       This is an unapproved IEEE Standards Draft, subject to change.
  11147.  
  11148.  
  11149.  
  11150.  
  11151.  4.8 Graphics Services                                                 149
  11152.  
  11153.  
  11154.  
  11155.  
  11156.  
  11157.  
  11158.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  11159.  
  11160.            - Device independence
  11161.  
  11162.               +o input devices:  dials, mouse, tablets etc.
  11163.  
  11164.               +o output devices:  plotters, raster, vector etc.
  11165.  
  11166.            - Window system independence
  11167.  
  11168.            - Programming language independence
  11169.  
  11170.            - Programmer portability
  11171.  
  11172.            - User portability
  11173.  
  11174.      (2)  Interoperability/Distributed Graphics:  In order to allow
  11175.           applications to execute on one machine and display graphics on
  11176.           remote display servers, standard graphics protocols are
  11177.           necessary.  This allows for display of graphics on machines that
  11178.           are incapable of executing particular types of applications and
  11179.           it also facilitates graphics conferencing.
  11180.  
  11181.      (3)  Graphics Data Exchange:  In order to share or exchange graphical
  11182.           information between diverse applications, standard graphics data
  11183.           exchange mechanisms are necessary.
  11184.  
  11185.  This clause presents a reference model for this component and describes
  11186.  the services provided to application programmers and users.  It also
  11187.  describes the current national/international standards, emerging
  11188.  standards, de facto standards, and any existing gaps that need new
  11189.  standardization efforts.
  11190.  
  11191.  
  11192.  4.8.2  Scope
  11193.  
  11194.  Included within this component are standards in the graphics area that
  11195.  address the following topics :
  11196.  
  11197.      - Application Program Interface (API) Standards
  11198.  
  11199.      - Language Bindings Standards
  11200.  
  11201.      - Metafile and Archive Standards
  11202.  
  11203.      - Device Independent Interface/Protocol Standards
  11204.  
  11205.      - Computer Graphics Reference Model
  11206.  
  11207.      - Conformance Testing of Implementations of Graphics Standards
  11208.  
  11209.  
  11210.  
  11211.               Copyright (c) 1991 IEEE.  All rights reserved.
  11212.       This is an unapproved IEEE Standards Draft, subject to change.
  11213.  
  11214.  
  11215.  
  11216.  
  11217.  150                              4 POSIX Open System Environment Services
  11218.  
  11219.  
  11220.  
  11221.  
  11222.  
  11223.  
  11224.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  11225.  
  11226.      - Distributed Graphics Standards
  11227.  
  11228.      - Imaging Standards
  11229.  
  11230.      - Performance Metrics Standards
  11231.  
  11232.  The standards not addressed here are:
  11233.  
  11234.      - Data Exchange Standards
  11235.  
  11236.      - Graphical User Interface Standards
  11237.  
  11238.      - Window Management System Standards
  11239.  
  11240.  
  11241.  4.8.3  Reference Model
  11242.  
  11243.  Over the past decade many computer graphics standards have been
  11244.  developed.  While they are similar in concepts, their underlying
  11245.  reference models are different.  This restricts the degree to which the
  11246.  standards are compatible.  By producing a reference model to which all
  11247.  future graphics standards are to adhere, compatibility of graphics
  11248.  standards is assured.
  11249.  
  11250.  Formal work on the Computer Graphics Reference Model (CGRM) standard is
  11251.  in progress within the ANSI X3H3.2 committee.  It is an international
  11252.  standard that explains the relationships between existing graphics
  11253.  standards and defines relationships between standards in computer
  11254.  graphics and those in other areas.  It will form the basis for the next
  11255.  generation of computer graphics standards.  Broadly speaking, CGRM
  11256.  provides a framework within which relationships between standards can be
  11257.  described.
  11258.  
  11259.  There are five types of standards in the current family:
  11260.  
  11261.      - _A_p_p_l_i_c_a_t_i_o_n _P_r_o_g_r_a_m _I_n_t_e_r_f_a_c_e (_A_P_I) _S_t_a_n_d_a_r_d_s:  These define a
  11262.        programming interface for application programmers.  GKS, GKS-3D,
  11263.        PHIGS, and Xlib are examples of standards in this area.
  11264.  
  11265.      - _M_e_t_a_f_i_l_e _a_n_d _A_r_c_h_i_v_e _S_t_a_n_d_a_r_d_s:  These standards define
  11266.        representations of graphics for storage and transfer between
  11267.        systems.  These are basically file format and file transfer
  11268.        encoding standards.  CGM (Computer Graphics Metafile) and PHIGS
  11269.        Archive files are of this type.
  11270.  
  11271.      - _D_e_v_i_c_e _I_n_d_e_p_e_n_d_e_n_t _I_n_t_e_r_f_a_c_e _S_t_a_n_d_a_r_d_s:  These standards define the
  11272.        interface between device-independent graphics systems software and
  11273.        one or more device-dependent graphics device drivers.  CGI
  11274.        (Computer Graphics Interface) is the standard in this area.
  11275.  
  11276.  
  11277.               Copyright (c) 1991 IEEE.  All rights reserved.
  11278.       This is an unapproved IEEE Standards Draft, subject to change.
  11279.  
  11280.  
  11281.  
  11282.  
  11283.  4.8 Graphics Services                                                 151
  11284.  
  11285.  
  11286.  
  11287.  
  11288.  
  11289.  
  11290.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  11291.  
  11292.      - _L_a_n_g_u_a_g_e _B_i_n_d_i_n_g _S_t_a_n_d_a_r_d_s:  API and device interface standards are
  11293.        functional specifications defined independently from particular
  11294.        programming languages.  Each standard has attached language binding
  11295.        standards that state how the functionality should be accessed from
  11296.        a variety of programming languages.
  11297.  
  11298.      - _F_r_a_m_e_w_o_r_k _S_t_a_n_d_a_r_d_s:  These include the standardization of a
  11299.        reference model for computer graphics, conformance criteria, and
  11300.        the registration of graphical items.
  11301.  
  11302.  The CGRM describes the current family of graphics standards in terms of
  11303.  the following four levels of abstraction:
  11304.  
  11305.      - _A_p_p_l_i_c_a_t_i_o_n _L_e_v_e_l:  This is the level at which applications-related
  11306.        information is composed into abstract graphics related to the
  11307.        application.
  11308.  
  11309.      - _V_i_r_t_u_a_l _L_e_v_e_l:  At this level, the graphical output to be displayed
  11310.        is described in terms of output primitives
  11311.  
  11312.      - _L_o_g_i_c_a_l _L_e_v_e_l:  At this level, the information necessary to render
  11313.        a primitive on a particular device is assembled.
  11314.  
  11315.      - _P_h_y_s_i_c_a_l _L_e_v_e_l:  This level is associated with a particular output
  11316.        device and a collection of input devices.  The physical level need
  11317.        not correspond to real devices such as a pen plotter.  There could
  11318.        be further layers of the system between the physical level and the
  11319.        hardware, such as the window system.
  11320.  
  11321.  The Application Program Interface (API) is the interface between the
  11322.  application and the graphics system.  There are also interfaces to
  11323.  metafiles and archives and to the operator.  Here the operator need not
  11324.  mean human operator, but the user of the graphics system; for example,
  11325.  the window system.
  11326.  
  11327.  The Computer Graphics Reference Model can be incorporated into the POSIX
  11328.  OSE reference model as depicted in Figure 4-17.  It provides the context
  11329.  for the discussion of graphics services and shows that the graphics
  11330.  services is a component of the overall POSIX OSE and is available to the
  11331.  the application through the POSIX OSE API.
  11332.  
  11333.  The entities and interfaces specific to the graphics services are
  11334.  identified in this clause.
  11335.  
  11336.  The entities are:
  11337.  
  11338.      (1)  Application Software, such as CAD/CAM/CAE applications, imaging
  11339.           applications, electronic publishing, etc.
  11340.  
  11341.  
  11342.  
  11343.               Copyright (c) 1991 IEEE.  All rights reserved.
  11344.       This is an unapproved IEEE Standards Draft, subject to change.
  11345.  
  11346.  
  11347.  
  11348.  
  11349.  152                              4 POSIX Open System Environment Services
  11350.  
  11351.  
  11352.  
  11353.  
  11354.  
  11355.  
  11356.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  11357.  
  11358.  _________________________________________________________________________
  11359.  
  11360.  
  11361.  
  11362.  
  11363.  
  11364.  
  11365.  
  11366.  
  11367.  
  11368.  
  11369.  
  11370.  
  11371.  
  11372.  
  11373.  
  11374.  
  11375.  
  11376.  
  11377.  
  11378.  
  11379.  
  11380.  
  11381.  
  11382.  _________________________________________________________________________
  11383.      Figure 4-16  -  Computer Graphics Reference Model Level Structure
  11384.  
  11385.  
  11386.      (2)  Application Platform, which consists of graphics libraries such
  11387.           as GKS, PHIGS and Xlib.
  11388.  
  11389.      (3)  External Environment, consisting of external entities with which
  11390.           the application platform exchanges information such as input
  11391.           devices, X/PEX servers, hardware buffers, etc.
  11392.  
  11393.  The interfaces are:
  11394.  
  11395.      (1)  Application Program Interface (API), which is the programming
  11396.           interface between the application and the application platform.
  11397.           It standardizes the conceptual model, calling sequence,
  11398.           functions, and syntax that a programmer uses to develop a
  11399.           graphics application.  Each API standard has an attached
  11400.           language-binding standard that allows the functionality to be
  11401.           accessed from a variety of programming languages.  A standard
  11402.           API in conjunction with a standard language binding promotes
  11403.           application portability, by isolating the programmer from most
  11404.           hardware peculiarities and providing language features readily
  11405.           implemented on a broad range of processors.  Examples of APIs in
  11406.           the graphics services area are GKS, PHIGS, PIK, PostScript, etc.
  11407.  
  11408.  
  11409.               Copyright (c) 1991 IEEE.  All rights reserved.
  11410.       This is an unapproved IEEE Standards Draft, subject to change.
  11411.  
  11412.  
  11413.  
  11414.  
  11415.  4.8 Graphics Services                                                 153
  11416.  
  11417.  
  11418.  
  11419.  
  11420.  
  11421.  
  11422.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  11423.  
  11424.  _________________________________________________________________________
  11425.  
  11426.  
  11427.  
  11428.  
  11429.  
  11430.  
  11431.  
  11432.  
  11433.  
  11434.  
  11435.  
  11436.  
  11437.  
  11438.  
  11439.  
  11440.  
  11441.  
  11442.  
  11443.  
  11444.  
  11445.  
  11446.  
  11447.  
  11448.  
  11449.  
  11450.  
  11451.  
  11452.  
  11453.  
  11454.  _________________________________________________________________________
  11455.         Figure 4-17  -  POSIX OSE Graphics Service Reference Model
  11456.  
  11457.  
  11458.      (2)  External Environment Interface (EEI), which is the interface
  11459.           between the application platform and the External Environment
  11460.           described earlier.  In the graphics services area these can be
  11461.           device drivers that are used for communication between the
  11462.           device-independent and the device-dependent functions as well as
  11463.           protocols and file formats.
  11464.  
  11465.  The standardization efforts in the graphics area focus on these two
  11466.  interfaces.
  11467.  
  11468.  
  11469.  
  11470.  
  11471.  
  11472.  
  11473.  
  11474.  
  11475.               Copyright (c) 1991 IEEE.  All rights reserved.
  11476.       This is an unapproved IEEE Standards Draft, subject to change.
  11477.  
  11478.  
  11479.  
  11480.  
  11481.  154                              4 POSIX Open System Environment Services
  11482.  
  11483.  
  11484.  
  11485.  
  11486.  
  11487.  
  11488.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  11489.  
  11490.  4.8.4  Service Requirements
  11491.  
  11492.  4.8.4.1  Graphics Concepts
  11493.  
  11494.  Computer Graphics Services can be discussed in terms of the following
  11495.  fundamental graphics concepts:
  11496.  
  11497.  _O_u_t_p_u_t__P_r_i_m_i_t_i_v_e_s
  11498.  
  11499.  The output primitives are the building blocks used to construct graphical
  11500.  objects for display or storage in an archive file.  Common output
  11501.  primitives are:
  11502.  
  11503.      - _L_i_n_e
  11504.  
  11505.      - _P_o_l_y_l_i_n_e used to represent a series of straight lines from a set of
  11506.        points.
  11507.  
  11508.      - _M_a_r_k_e_r is a special symbol used to represent semantics of graphical
  11509.        objects.
  11510.  
  11511.      - _F_i_l_l _a_r_e_a is an area with an edge and an interior which may be
  11512.        filled with a solid color or some form of pattern or hash.
  11513.  
  11514.      - _T_e_x_t is an output primitive used to represent strings in two or
  11515.        three dimensional space.
  11516.  
  11517.      - _A_n_n_o_t_a_t_i_o_n _t_e_x_t is text that is always displayed facing the viewer.
  11518.  
  11519.      - _C_e_l_l _a_r_r_a_y_s are areas with rectangular grids which can take on
  11520.        individual colors.
  11521.  
  11522.      - _T_r_i_a_n_g_l_e _s_t_r_i_p is a set of triangles defined by a particular
  11523.        ordering of vertices.
  11524.  
  11525.      - _Q_u_a_d_r_i_l_a_t_e_r_a_l _m_e_s_h is a set of quadrilaterals defined by a grid of
  11526.        vertices.
  11527.  
  11528.      - _S_u_r_f_a_c_e_s:  NURBS (Nonuniform Rational B-Spline)
  11529.  
  11530.      - _C_u_r_v_e_s:  NURBS (Nonuniform Rational B-Spline)
  11531.  
  11532.      - _C_o_n_i_c_s:  Circles, ellipses, parabolas, and hyperbolas
  11533.  
  11534.  _P_r_i_m_i_t_i_v_e__A_t_t_r_i_b_u_t_e_s
  11535.  
  11536.  Attributes of primitives determine the style of the display of the
  11537.  primitive.  For example, lines and edges may have different line styles
  11538.  such as dotted or dashed, text may have different fonts, orientation, and
  11539.  
  11540.  
  11541.               Copyright (c) 1991 IEEE.  All rights reserved.
  11542.       This is an unapproved IEEE Standards Draft, subject to change.
  11543.  
  11544.  
  11545.  
  11546.  
  11547.  4.8 Graphics Services                                                 155
  11548.  
  11549.  
  11550.  
  11551.  
  11552.  
  11553.  
  11554.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  11555.  
  11556.  character spacing.  A polymarker may be an asterisk or a small triangle.
  11557.  They all may be red in color.  General type attributes that apply to
  11558.  almost any output primitive are color, visibility, pickability, and
  11559.  highlight method.
  11560.  
  11561.  _I_n_p_u_t__P_r_i_m_i_t_i_v_e_s
  11562.  
  11563.  Input primitives or logical devices are virtual devices designed to
  11564.  insulate the application from the real input devices.  Logical devices
  11565.  include picking devices, locator devices, choice devices, valuator
  11566.  devices, etc.  In terms, of actual devices, a locator device might be
  11567.  associated with the first mouse button.
  11568.  
  11569.  _I_n_p_u_t__M_o_d_e_l
  11570.  
  11571.  The input model describes how input primitives and logical devices are
  11572.  related to physical input devices and the degree of control provided to
  11573.  the application over the devices.  For example, one control choice might
  11574.  be how feedback is echoed to the operator when a logical locator device
  11575.  is attached to a depressed mouse button.  The feedback might be a
  11576.  rectangular cursor or the highlighting of geometry as a cross-hair cursor
  11577.  moves over it.  When the button is released the device coordinates are
  11578.  placed in the locator data record and an event is placed in an event
  11579.  queue for which the application can check asynchronously.  The method the
  11580.  application uses to determine if a device has data for it is usually
  11581.  described in terms of modes.  A common mode is event mode.  The
  11582.  application waits a finite time for some event to appear in a queue.  If
  11583.  no event comes in the finite time, the application does other processing
  11584.  and eventually comes back to check the queue with the wait for some
  11585.  event.  If an event appears, the application determines what type it is
  11586.  and gets the data for that type of event.  For a pick device, the data
  11587.  might be all possible graphical primitives that could intersect some
  11588.  aperture, possibly specified in the device coordinate system.
  11589.  
  11590.  _C_o_o_r_d_i_n_a_t_e__S_y_s_t_e_m_s__a_n_d__C_l_i_p_p_i_n_g
  11591.  
  11592.  Part of the graphics services is a means to utilize various coordinate
  11593.  systems.  Graphical output has to be described to the graphics system in
  11594.  terms of some coordinate system, relevant to the application and
  11595.  presented to the display device in terms of its own coordinate system,
  11596.  the device coordinate system.  It is unlikely that these two coordinate
  11597.  systems will be the same.  A graphics system may therefore involve a
  11598.  number of coordinate systems and hence the need to define transformations
  11599.  between them.  Some standard types of transformations are scaling,
  11600.  rotating, translating, reflecting, and projection, such as parallel and
  11601.  perspective.  They are used to manipulate objects in a coordinate system
  11602.  and to map from one coordinate system to another.  The coordinate systems
  11603.  commonly used are modeling coordinates, world coordinates, view-reference
  11604.  coordinates, normalized projection coordinates, and device coordinates.
  11605.  
  11606.  
  11607.               Copyright (c) 1991 IEEE.  All rights reserved.
  11608.       This is an unapproved IEEE Standards Draft, subject to change.
  11609.  
  11610.  
  11611.  
  11612.  
  11613.  156                              4 POSIX Open System Environment Services
  11614.  
  11615.  
  11616.  
  11617.  
  11618.  
  11619.  
  11620.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  11621.  
  11622.  Clipping is the process of specifying a region in space and restricting
  11623.  graphical output to that region.  Only those primitives that define
  11624.  objects in that region will have their output displayed.
  11625.  
  11626.  _O_u_t_p_u_t__M_o_d_e_l
  11627.  
  11628.  The output model is the concept of how graphics objects are created,
  11629.  displayed, and controlled on output devices.  The output model defines
  11630.  how to position and organize objects on the screen, and the visual state
  11631.  of these objects such as visible or invisible, hidden lines removed or
  11632.  not removed, picture matches retained structure, picture not consistent
  11633.  with retained structure, etc.
  11634.  
  11635.  More specifically, the output model concept is made up of the:
  11636.  
  11637.      - Transformation pipeline
  11638.  
  11639.      - Rendering pipeline
  11640.  
  11641.      - Retained structures
  11642.  
  11643.      - Nonretained structures
  11644.  
  11645.      - Graphics state
  11646.  
  11647.      - Window systems
  11648.  
  11649.                                                                             e
  11650.  
  11651.  _S_t_o_r_a_g_e_/_A_r_c_h_i_v_i_n_g
  11652.  
  11653.  Storage data formats for displayed or rendered images are required, but    e
  11654.  not treated at this time.                                                  e
  11655.  
  11656.  4.8.4.2  Graphics Requirements
  11657.  
  11658.  The graphics service requirements of all users of this system can be
  11659.  generalized as:
  11660.  
  11661.      - The ability to create, delete, and modify output primitives.
  11662.  
  11663.      - The ability to specify and edit the primitive attributes globally
  11664.        and individually.
  11665.  
  11666.      - The ability to transform (i.e., scale, translate, rotate, reflect,
  11667.        project, etc.) primitives for construction of more complex objects
  11668.        and for arrangement in the viewing space.
  11669.  
  11670.  
  11671.  
  11672.  
  11673.               Copyright (c) 1991 IEEE.  All rights reserved.
  11674.       This is an unapproved IEEE Standards Draft, subject to change.
  11675.  
  11676.  
  11677.  
  11678.  
  11679.  4.8 Graphics Services                                                 157
  11680.  
  11681.  
  11682.  
  11683.  
  11684.  
  11685.  
  11686.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  11687.  
  11688.      - The ability to create and manipulate a database of primitives, to
  11689.        define and edit attributes, to create and combine transformations,
  11690.        and to selectively control the display of graphics primitives.
  11691.  
  11692.      - The ability to display graphical objects constructed in a retained
  11693.        database, or the ability to display primitives immediately, or to
  11694.        display from both a retained database and immediately.
  11695.  
  11696.      - The ability to apply lighting and shading algorithms to collections
  11697.        of graphical objects with multiple light types and sources.
  11698.  
  11699.      - The ability to prepare display data and control the timing of the
  11700.        actual display of the display data.  On some systems this is
  11701.        referred to as frame buffer control.
  11702.  
  11703.      - The ability to store and retrieve graphical objects from files.
  11704.  
  11705.      - The ability to control input devices and retrieve data from input
  11706.        devices.
  11707.  
  11708.      - The ability to direct output to a meta-file and retrieve graphics
  11709.        data from a meta-file.
  11710.  
  11711.      - The ability to inquire about all aspects of the graphics
  11712.        environment; e.g., the state of the system at any given time, the
  11713.        actual capabilities of a given hardware platform, the attributes
  11714.        and primitives supported by a given implementation, etc.
  11715.  
  11716.      - The ability to distribute graphics.
  11717.  
  11718.      - The ability to control errors.
  11719.  
  11720.  4.8.4.3  Application Program Interface Services
  11721.  
  11722.  The major categories of graphics services available in the POSIX OSE API
  11723.  area include:
  11724.  
  11725.      - 2-D graphics API services
  11726.  
  11727.      - 3-D graphics API services
  11728.  
  11729.      - Device interface API services
  11730.  
  11731.      - Image processing API services
  11732.  
  11733.  For most of these API standards there exist standard language bindings so
  11734.  that applications using different programming languages can access the
  11735.  same functionality.
  11736.  
  11737.  
  11738.  
  11739.               Copyright (c) 1991 IEEE.  All rights reserved.
  11740.       This is an unapproved IEEE Standards Draft, subject to change.
  11741.  
  11742.  
  11743.  
  11744.  
  11745.  158                              4 POSIX Open System Environment Services
  11746.  
  11747.  
  11748.  
  11749.  
  11750.  
  11751.  
  11752.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  11753.  
  11754.  The choice of which graphics standard API to use will depend on a number
  11755.  of factors:  application profile, overall system architecture, equipment
  11756.  available, existing application database interaction, system performance
  11757.  considerations, user interface requirements, management policy, and other
  11758.  external factors.  The aim of producing a compatible set of graphics
  11759.  standards in GKS, GKS-3D, PHIGS, PHIGS PLUS, etc.  (described in the
  11760.  Standards subclause) is to allow that choice to be made in the most
  11761.  flexible way.
  11762.  
  11763.  4.8.4.4  External Environment Interface Services
  11764.  
  11765.  The major categories of graphics services in the POSIX OSE EEI area
  11766.  include:
  11767.  
  11768.      - Protocols
  11769.  
  11770.      - File Formats
  11771.  
  11772.      - Device Drivers
  11773.  
  11774.  The choice of which standard to use depends on a number of factors:
  11775.  application profile, system architecture, equipment available, system
  11776.  performance considerations, and other factors
  11777.  
  11778.                                                                             e
  11779.  
  11780.  
  11781.  4.8.5  Standards, Specifications, and Gaps
  11782.  
  11783.  There are several major standards existing in the computer graphics
  11784.  industry today, that have been approved by National/International
  11785.  organizations such as ANSI, ISO, and IEEE.  There are also standards
  11786.  efforts going on in related areas such as application data exchange.
  11787.  These official graphics standards are complemented by de facto standards
  11788.  that have been accepted by the graphics industry at large.  This document
  11789.  provides a general explanation of these standards, their specifications,
  11790.  and interrelationships.
  11791.  
  11792.  4.8.5.1  Current Standards
  11793.  
  11794.     PHIGS -- ISO 9592 Parts 1-3
  11795.     Fortran Language Binding -- ISO 9593-1
  11796.     Ada Language Binding -- ISO 9593-3
  11797.     C Language Binding -- DIS 9593-4
  11798.  
  11799.           The Programmer's Hierarchical Interactive Graphics Standard
  11800.           (PHIGS) is a functional specification of the interface between
  11801.           an application program and its graphics support system.  It is
  11802.           an ANSI/ISO standard and provides the following graphics
  11803.  
  11804.  
  11805.               Copyright (c) 1991 IEEE.  All rights reserved.
  11806.       This is an unapproved IEEE Standards Draft, subject to change.
  11807.  
  11808.  
  11809.  
  11810.  
  11811.  4.8 Graphics Services                                                 159
  11812.  
  11813.  
  11814.  
  11815.  
  11816.  
  11817.  
  11818.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  11819.  
  11820.  _________________________________________________________________________
  11821.  
  11822.  
  11823.  
  11824.  
  11825.  
  11826.  
  11827.  
  11828.  
  11829.  
  11830.  
  11831.  
  11832.  
  11833.  
  11834.  
  11835.  
  11836.  
  11837.  
  11838.  
  11839.  
  11840.  
  11841.  
  11842.  
  11843.  
  11844.  
  11845.  
  11846.  
  11847.  
  11848.  
  11849.  
  11850.  _________________________________________________________________________
  11851.    Figure 4-18  -  POSIX OSE Graphics Service Reference Model Standards
  11852.  
  11853.  
  11854.           functionality:
  11855.  
  11856.            - A high degree of interactivity
  11857.  
  11858.            - Multilevel, hierarchical structuring of graphics data
  11859.  
  11860.            - Easy modification of graphics data and the relationships
  11861.              among the data
  11862.  
  11863.            - 3-D, as well as 2-D, graphical input and output
  11864.  
  11865.            - Offline storage (and retrieval) of graphics data
  11866.  
  11867.           PHIGS controls the definition, modification, and display of
  11868.           hierarchical graphics data and specifies functional descriptions
  11869.  
  11870.  
  11871.               Copyright (c) 1991 IEEE.  All rights reserved.
  11872.       This is an unapproved IEEE Standards Draft, subject to change.
  11873.  
  11874.  
  11875.  
  11876.  
  11877.  160                              4 POSIX Open System Environment Services
  11878.  
  11879.  
  11880.  
  11881.  
  11882.  
  11883.  
  11884.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  11885.  
  11886.  
  11887.                      Table 4-10  -  Graphics Standards                      e
  11888.  __________________________________________________________________________________________________________________________________________________  e
  11889.                  Service                   Type       Specification        Subclausee
  11890.  ___________________________________________________________________________________e
  11891.  
  11892.  PHIGS                                      S     ISO 9592-1, -2, -3       4.8.5.1  e       ee
  11893.  PHIGS PLUS                                 E     ISO DIS 9592-4           4.8.5.2  e       ee
  11894.  GKS                                        S     ISO 7942                 4.8.5.1  e       ee
  11895.  GKS-3D                                     S     ISO 8805                 4.8.5.1  e       ee
  11896.  CGI                                        E     ISO DIS 9636             4.8.5.2  e       ee
  11897.  CGM                                        S     ISO 8632-1, -2, -3, -4   4.8.5.1  e       ee
  11898.  PHIGS Archive files                        S     ISO 9592-2, -3           4.8.5.1  e       ee
  11899.  IPI                                        E     JTC 1 N1002              4.8.5.2  e       ee
  11900.  Conformance Testing                        E     ISO DIS 10641            4.8.5.2  e       ee
  11901.  PEX                                        G     MIT Consortium           4.8.5.3  e       ee
  11902.  Graphics Style Guide                       G     -                        4.8.5.3  e       ee
  11903.  Control and Deterministic Functionality    G     -                        4.8.5.3  e       ee
  11904.  CGRM and Windows                           G     -                        4.8.5.3  e       ee
  11905.  Solids                                     G     -                        4.8.5.3  e       ee
  11906.  Cut and Paste                              G     -                        4.8.5.3  e       ee
  11907.  Nonretained Graphics                       G     -                        4.8.5.3  e       ee
  11908.  __________________________________________________________________________________________________________________________________________________  e
  11909.  
  11910.  
  11911.           of systems capabilities, including the definition of internal
  11912.           data structures, editing capabilities, display operations, and
  11913.           device control functions.  PHIGS manages the organization and
  11914.           display of data in a centralized database, allowing programmers
  11915.           to define and organize graphical data in a manner most
  11916.           convenient to the application.  Such a hierarchical approach is
  11917.           a big benefit and is not available in GKS, another international
  11918.           standard.
  11919.  
  11920.           Objects are defined in the PHIGS graphical database by a
  11921.           sequence of elements, including output primitives, attributes,
  11922.           transformations, and invocations of other object and object part
  11923.           definitions.  These elements are grouped into entities called
  11924.           structures.  Structures may be related in a number of ways,
  11925.           including geometrically, hierarchically, or according to
  11926.           inherent properties or characteristics, as defined by an
  11927.           application.
  11928.  
  11929.           PHIGS provides tools to use hierarchical data structures with
  11930.           minimal effort by the application programmer.  Pictures
  11931.           constructed from geometric models often have a clearly evident
  11932.           structure.  This structure can sometimes be easily seen in the
  11933.           repeated use of symbols, in the connections and geometric
  11934.           relationships between objects, or in the overall organization of
  11935.  
  11936.  
  11937.               Copyright (c) 1991 IEEE.  All rights reserved.
  11938.       This is an unapproved IEEE Standards Draft, subject to change.
  11939.  
  11940.  
  11941.  
  11942.  
  11943.  4.8 Graphics Services                                                 161
  11944.  
  11945.  
  11946.  
  11947.  
  11948.  
  11949.  
  11950.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  11951.  
  11952.  
  11953.             Table 4-11  -  Graphics Standards Language Bindings             e
  11954.  __________________________________________________________________________________________________________________________________________________  e
  11955.  Standard         LIS       Ada        APL       BASIC        C        C++  e
  11956.  _________________________________________________________________________  e
  11957.  
  11958.  PHIGS                       S                                E             e
  11959.  GKS                         E                                E             e
  11960.  GKS-3D                      E                                E             e
  11961.  CGI                                                          E             e
  11962.  
  11963.  Standard      COBOL     C-LISP     Fortran     Pascal     PL/1     Prolog  e
  11964.  _________________________________________________________________________  e
  11965.  
  11966.  PHIGS                                 S                                    e
  11967.  GKS                                   S          S                         e
  11968.  GKS-3D                                E          E                         e
  11969.  CGI                                   E                                    e
  11970.  __________________________________________________________________________________________________________________________________________________  e
  11971.  NOTES:  LIS -- Language-independent specification is available.            e
  11972.  
  11973.  Ada, APL, BASIC, -- Language-dependent specifications exist.               e
  11974.  
  11975.  S, E, G -- Standard, Emerging Standard, Gap                                e
  11976.  
  11977.  
  11978.           a complex image.  Even if the object's structure is not evident,
  11979.           its underlying data organization may be quite rigorous, well
  11980.           defined, and well understood by the application.  PHIGS supports
  11981.           both these cases by separating the definition of graphics data
  11982.           from the actions required to display them.
  11983.  
  11984.           The structured definition of graphics data inherently reduces
  11985.           repetition and connectivity problems.  The repeated use of
  11986.           component objects and the relationships between them can
  11987.           automatically be made a part of an object's definition.
  11988.  
  11989.           The structured definition of data allows images to share
  11990.           component objects, making it faster and easier for application
  11991.           programs to define and modify picture descriptions.  Sharing
  11992.           component objects will also reduce storage requirements for
  11993.           graphics data.
  11994.  
  11995.           PHIGS permits rapid dynamic access to a centralized graphics
  11996.           database.  This allows PHIGS to support interactive end user
  11997.           application programs and, depending on the capability of the
  11998.           hardware, realtime definition, and modification of graphics
  11999.           data.  PHIGS is capable of performing three-dimensional modeling
  12000.           transformations, workstation transformations, and viewing.  It
  12001.  
  12002.  
  12003.               Copyright (c) 1991 IEEE.  All rights reserved.
  12004.       This is an unapproved IEEE Standards Draft, subject to change.
  12005.  
  12006.  
  12007.  
  12008.  
  12009.  162                              4 POSIX Open System Environment Services
  12010.  
  12011.  
  12012.  
  12013.  
  12014.  
  12015.  
  12016.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  12017.  
  12018.           also handles two dimensions through a shorthand functionality of
  12019.           three dimensions.  In workstation transformations, PHIGS
  12020.           provides another level of display control after the viewing
  12021.           operation that can isolate a section of an image for pan and
  12022.           zoom operations.
  12023.  
  12024.           The National Institute of Standards and Technology (NIST) has
  12025.           developed a test system to help determine whether
  12026.           implementations of PHIGS conform to the specifications of the
  12027.           ANSI standard X3.144.  The PHIGS Validation Test (PVT) suite
  12028.           consists of highly portable Fortran programs which examine test
  12029.           conditions and report the results.
  12030.  
  12031.     PHIGS PLUS -- DIS 9592-4
  12032.  
  12033.           PHIGS Plus Lumiere Und Surfaces (PLUS) specifies a set of
  12034.           extensions to PHIGS that addresses some of the deficiencies in
  12035.           the graphics functionality provided by PHIGS.  PHIGS does not
  12036.           include ``higher level'' primitives such as curves and surfaces,
  12037.           and techniques for lighting and shading.  Recognizing this, an
  12038.           ad hoc working group was formed to propose a set of extensions
  12039.           to PHIGS to enable these capabilities to be addressed in a
  12040.           standard manner, compatible with the overall philosophy of
  12041.           PHIGS.  This set of proposed extensions was submitted to ISO and
  12042.           has since been developed into PHIGS PLUS.  PHIGS PLUS enhances
  12043.           PHIGS by providing:
  12044.  
  12045.            - Primitives for defining curves and surfaces
  12046.  
  12047.            - Lighting models
  12048.  
  12049.            - Shading of surfaces
  12050.  
  12051.            - Depth cueing
  12052.  
  12053.            - Color mapping and direct color specification
  12054.  
  12055.           PHIGS PLUS is not an international standard yet and is currently
  12056.           at the stage of committee draft.
  12057.  
  12058.     GKS -- ISO 7942; FIPS 120
  12059.     Fortran Language Bindings -- ISO 8651-1
  12060.     Pascal Language Bindings -- ISO 8651-2
  12061.     Ada Language Bindings -- DIS 8651-3
  12062.     C Language Bindings -- DIS 8651-4
  12063.  
  12064.           GKS Information Bulletin
  12065.  
  12066.  
  12067.  
  12068.  
  12069.               Copyright (c) 1991 IEEE.  All rights reserved.
  12070.       This is an unapproved IEEE Standards Draft, subject to change.
  12071.  
  12072.  
  12073.  
  12074.  
  12075.  4.8 Graphics Services                                                 163
  12076.  
  12077.  
  12078.  
  12079.  
  12080.  
  12081.  
  12082.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  12083.  
  12084.           The Graphical Kernel System (GKS) is a 2-D graphics system and
  12085.           provides no support for 3-D.  It is a 2-D graphics API that
  12086.           shields the programmer from differences among various computers
  12087.           and graphic devices.  It allows for portability of graphics
  12088.           applications by standardizing the basic graphic functions and
  12089.           the method and syntax for accessing these functions.
  12090.  
  12091.           GKS is an ANSI, ISO standard and is widely used today.  It has
  12092.           standard language bindings for Fortran and Pascal.  Language
  12093.           bindings for C, Ada, and LISP are currently being worked on.
  12094.  
  12095.           GKS supports the grouping of logically related primitives such
  12096.           as lines, polygons, strings, and their attributes into
  12097.           collections called segments, which cannot be nested.
  12098.  
  12099.           GKS supports many graphical input and output devices such as
  12100.           black/white and color displays, printers, plotters, mice, data
  12101.           tablets, joysticks, and digitizers.
  12102.  
  12103.     GKS-3D -- ISO 8805
  12104.     Fortran Language Bindings -- DIS 8806-1
  12105.     Pascal Language Bindings -- CD 8806-2
  12106.     Ada Language Bindings -- DIS 8806-3
  12107.     C Language Bindings -- DIS 8806-4
  12108.  
  12109.           Graphical Kernel System for Three Dimensions (GKS-3D) is an ISO
  12110.           standard and specifies extensions to GKS for defining and
  12111.           viewing three-dimensional wire-frame objects.  In addition, the
  12112.           GKS input model has been extended to provide three-dimensional
  12113.           locator and stroke input.  GKS-3D allows the operator to obtain
  12114.           information from three-dimensional input devices and to perform
  12115.           hidden line/hidden surface removal (HLHSR) at the workstation.
  12116.           It does not, however, provide specific functions for controlling
  12117.           rendering techniques such as light source, shading, texturing,
  12118.           and shadow computations that must be done locally at the
  12119.           workstation.  Conceptually, all workstations are three-
  12120.           dimensional in GKS-3D, which is made possible by shielding the
  12121.           hardware peculiarities as in GKS.
  12122.  
  12123.     CGI -- DIS 9636 Parts 1-6
  12124.     Fortran Language Bindings -- DIS 9638-1
  12125.     C Language Bindings -- CD 9638-4
  12126.  
  12127.           The Computer Graphics Interface (CGI) specifies a standard
  12128.           functional and syntactical specification of the control and data
  12129.           exchange between device-independent graphics software and one or
  12130.           more device-dependent graphics device drivers.  Unlike the
  12131.           graphics standards discussed earlier, CGI specifies an interface
  12132.           at the device-driver level, rather than at the application
  12133.  
  12134.  
  12135.               Copyright (c) 1991 IEEE.  All rights reserved.
  12136.       This is an unapproved IEEE Standards Draft, subject to change.
  12137.  
  12138.  
  12139.  
  12140.  
  12141.  164                              4 POSIX Open System Environment Services
  12142.  
  12143.  
  12144.  
  12145.  
  12146.  
  12147.  
  12148.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  12149.  
  12150.           level.
  12151.  
  12152.           Unlike CGM, which only handles graphical output, CGI handles
  12153.           both input and output, which makes all devices appear as
  12154.           identical, virtual graphics devices.  Therefore, this protocol
  12155.           is also known as the Virtual Device Interface (VDI).  It
  12156.           provides a standard graphics escape mechanism to access
  12157.           nonstandard graphics device capabilities.  CGI allows
  12158.           programmers to write portable device-driver software that is
  12159.           independent of the physical graphics device characteristics.
  12160.           This makes the software portable and compatible with a wide
  12161.           variety of devices.
  12162.  
  12163.     CGM -- ISO 8632 Parts 1-4
  12164.  
  12165.           The Computer Graphics Metafile for storage and transfer of
  12166.           picture description information (CGM) is a mechanism for
  12167.           retaining and/or transporting graphics data and control
  12168.           information.  This information contains a device-independent
  12169.           description of a picture at the level of the Computer Graphics
  12170.           Virtual Device Interface described above.  It provides a
  12171.           standard graphics escape mechanism to access nonstandard
  12172.           graphics device capabilities via the metafile.
  12173.  
  12174.           Pictures are described in CGM as a collection of elements of
  12175.           different kinds, representing, for example, primitives,
  12176.           attributes, and control information.  It is multipart ANSI, ISO
  12177.           standard.  Part 1 contains the semantics of all the elements.
  12178.           Parts 2, 3, and 4 contain the syntax of three different bindings
  12179.           of the standard, namely:  character-coded, binary, and clear-
  12180.           text encodings.
  12181.  
  12182.     PHIGS Archive files -- ISO 9592 Parts 2-3
  12183.  
  12184.           Parts 2 and 3 of the PHIGS standard define an archive file
  12185.           format for storage and transfer of PHIGS structures and
  12186.           structure network definitions from the CSS (Central Structure
  12187.           Store).  Part 2 describes the file format and Part 3 a clear
  12188.           text encoding.  This encoding is constructed using the same
  12189.           techniques as used by CGM.
  12190.  
  12191.  4.8.5.2  Emerging Standards
  12192.  
  12193.     IPI -- JTC 1# 1002
  12194.  
  12195.           Image Processing and Interchange is a functional specification
  12196.           and several language bindings for an Application Programmer
  12197.           Interface to Imaging.  The standard defines the data objects,
  12198.           primitive operations, and a reference model.  The API supplies
  12199.  
  12200.  
  12201.               Copyright (c) 1991 IEEE.  All rights reserved.
  12202.       This is an unapproved IEEE Standards Draft, subject to change.
  12203.  
  12204.  
  12205.  
  12206.  
  12207.  4.8 Graphics Services                                                 165
  12208.  
  12209.  
  12210.  
  12211.  
  12212.  
  12213.  
  12214.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  12215.  
  12216.           the basic building blocks upon which applications requiring
  12217.           imaging functionality can be built within conventional,
  12218.           distributed, and image oriented computing environments.
  12219.  
  12220.           The International Standard for Image Processing and Interchange
  12221.           includes three parts:
  12222.  
  12223.              Part 1   Common Imaging Architecture
  12224.  
  12225.              Part 2   Programmer's Imaging Kernel (PIK)
  12226.  
  12227.              Part 3   Image Interchange Format
  12228.  
  12229.     Conformance Testing of Implementations of Graphics Standards -- DIS
  12230.           10641
  12231.  
  12232.           The existence of any standard brings up the question of how one
  12233.           can be sure whether a product claiming to conform to the
  12234.           standard does in fact conform.  If this question is not
  12235.           addressed then the process of standardization becomes pointless.
  12236.  
  12237.           The general approach to software validation is through testing.
  12238.           The method is to subject the software to a collection of test
  12239.           cases and observe the results.  If the results are different
  12240.           from what is expected, the software does not conform to the
  12241.           specification.  The ANSI X3H3.7 committee is working on a
  12242.           standard that specifies the characteristics of standardized test
  12243.           sets for use in determining the conformance of implementations
  12244.           of graphics standards.  It will also provide guidance to
  12245.           functional standards developers concerning the content of their
  12246.           standards and the conformance rules within standards.
  12247.  
  12248.  4.8.5.3  Gaps in Available Standards
  12249.  
  12250.  4.8.5.3.1  Public Specifications                                           e
  12251.  
  12252.     PEX -- PHIGS Extensions to X                                            e
  12253.  
  12254.           PEX is a network protocol extension to the X Window System.  As   e
  12255.           many applications require 3-D graphics and other forms of input   e
  12256.           devices such as dials and button boxes, all of which are not      e
  12257.           supported by X, it became necessary to extend the X Protocol to   e
  12258.           include 3-D graphics.  PHIGS was selected as the application      e
  12259.           program interface because of its acceptance as a 3-D standard,    e
  12260.           its high degree of input ability, and its powerful database       e
  12261.           editing capabilities.  In 1988, the MIT X Consortium contracted   e
  12262.           to add 3-D and extended input extensions to the X protocol and    e
  12263.           the first release of PEX as a sample implementation (PEX-SI) was  e
  12264.           made in January 1991 but is not yet available commercially.       e
  12265.  
  12266.  
  12267.               Copyright (c) 1991 IEEE.  All rights reserved.
  12268.       This is an unapproved IEEE Standards Draft, subject to change.
  12269.  
  12270.  
  12271.  
  12272.  
  12273.  166                              4 POSIX Open System Environment Services
  12274.  
  12275.  
  12276.  
  12277.  
  12278.  
  12279.  
  12280.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  12281.  
  12282.           Using PEX, PHIGS workstations would be defined as X Windows.      e
  12283.           For the programmer, X, PHIGS, and PEX standards provide           e
  12284.           portability.                                                      e
  12285.  
  12286.  4.8.5.3.2  Unsatisfied Service Requirements                                e
  12287.  
  12288.      - Applications have different behaviors for similar functions which
  12289.        hinders user portability.  By adopting a uniform approach
  12290.        (Graphics_Style_Guide) users can switch between applications
  12291.        without a lot of training.
  12292.  
  12293.      - Current existing standards allow a wide interpretation for
  12294.        implementors of the standards thus denying the applications useful
  12295.        controls.  In order to achieve true portability in a distributed
  12296.        environment, applications will need control and deterministic
  12297.        functionality.
  12298.  
  12299.      - How window standard fits into CGRM
  12300.  
  12301.      - Current existing standards do not address solids.
  12302.  
  12303.      - The ability in a standard defined way to perform cut and paste
  12304.        between applications.
  12305.  
  12306.      - Current standards do not allow nonretained graphic methods to do
  12307.        lighting and shading.
  12308.  
  12309.  
  12310.  4.8.6  OSE Cross-Category Services
  12311.  
  12312.  Not applicable.
  12313.  
  12314.  
  12315.  4.8.7  Related Standards
  12316.  
  12317.     IGES, NBSIR 86-3359
  12318.  
  12319.           See 4.5.
  12320.  
  12321.     X Window System Data Stream Definition Parts 1-4
  12322.  
  12323.           (Being worked on in ANSI X3H3.6)
  12324.  
  12325.     Part 1: Functional specification
  12326.     Part 2: Data Stream Encoding
  12327.     Part 3: KEYSYM Encoding
  12328.     Part 4: Mapping onto Open Systems Interconnection (OSI) Services
  12329.  
  12330.  
  12331.  
  12332.  
  12333.               Copyright (c) 1991 IEEE.  All rights reserved.
  12334.       This is an unapproved IEEE Standards Draft, subject to change.
  12335.  
  12336.  
  12337.  
  12338.  
  12339.  4.8 Graphics Services                                                 167
  12340.  
  12341.  
  12342.  
  12343.  
  12344.  
  12345.  
  12346.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  12347.  
  12348.           The X Window System is a network based windowing and 2-D
  12349.           graphics system.  It uses the client-server model.  The client
  12350.           and server can reside on the same or different platforms.  The
  12351.           client is an application program executing anywhere on the
  12352.           network and displaying on the screen.  It does this by making
  12353.           calls to a library called Xlib to generate protocols.  The X
  12354.           server is the software that accepts protocols sent by the client
  12355.           and processes them for display.  It also accepts input from a
  12356.           mouse or keyboard for return to the application program.  The X
  12357.           protocol specifies the data stream encoding between the server
  12358.           and the clients.  The X Protocol originally developed by the X
  12359.           Consortium at MIT, is being standardized by the ANSI X3H3.6
  12360.           committee.  The encoding will provide a standard interface for
  12361.           applications running on both distributed and nondistributed
  12362.           environments having high-speed, reliable, network based
  12363.           communications.
  12364.  
  12365.           X Protocol is designed to work in a heterogeneous network
  12366.           environment.  Below the X Protocol, any lower layer of network
  12367.           can be used, as long as it is bidirectional.  Currently TCP/IP
  12368.           and DECnet are the two network protocols commonly supported in X
  12369.           servers.  Part 4 of this standard specifies the mapping of X
  12370.           Windows onto the OSI Services.
  12371.  
  12372.     XLIB
  12373.  
  12374.           Xlib--C Language X Interface is the common component of X
  12375.           Windows and resides on all X-based systems.  Although X is
  12376.           fundamentally defined by a network protocol, application
  12377.           programmers do not interface directly with the X Protocol.
  12378.           Instead, they interface to the X Protocol through Xlib.
  12379.  
  12380.           The X Window System uses the client-server model.  The client is
  12381.           an application program executing anywhere on the network and
  12382.           displaying on the screen.  It does this by making calls to Xlib
  12383.           to generate protocols.  The X server is the software that
  12384.           accepts protocols sent by the client and processes them for
  12385.           display.
  12386.  
  12387.           From a graphics perspective, Xlib is a 2-D graphics library and
  12388.           provides graphics primitives like points, lines, and arcs.  It
  12389.           has a Graphics Context (GC) to allow modification of graphics
  12390.           attributes such as line type, line width, color, and font type.
  12391.           The Xlib developed initially at MIT is in the Public Domain and
  12392.           is a de facto standard for windowing and 2-D graphics.  It has
  12393.           been adopted by major computer vendors and industry groups.  It
  12394.           is currently being considered for standardization by the IEEE
  12395.           P1201 committee.
  12396.  
  12397.  
  12398.  
  12399.               Copyright (c) 1991 IEEE.  All rights reserved.
  12400.       This is an unapproved IEEE Standards Draft, subject to change.
  12401.  
  12402.  
  12403.  
  12404.  
  12405.  168                              4 POSIX Open System Environment Services
  12406.  
  12407.  
  12408.  
  12409.  
  12410.  
  12411.  
  12412.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  12413.  
  12414.     PostScript
  12415.  
  12416.           The PostScript language from Adobe Systems Incorporated is a
  12417.           simple interpretative programming language with powerful
  12418.           graphics capabilities that has become a de facto industry
  12419.           standard.  It is a high-level, device independent language that
  12420.           is primarily used to describe the appearance of text, graphical
  12421.           shapes, and images on printed pages or screens.  Programs
  12422.           written in this language may be used to communicate information
  12423.           from a composition system to a printing system.  PostScript
  12424.           programs are created, transmitted, and interpreted in the form
  12425.           of source text and there is no compiled or encoded form of this
  12426.           language.
  12427.  
  12428.     SGML, ISO 8879: 1986
  12429.  
  12430.           See 4.5.
  12431.  
  12432.     IGES/PDES Organization (IPO)
  12433.  
  12434.           See 4.5.
  12435.  
  12436.     ISO/IEC TC184/SC4 (STEP)
  12437.  
  12438.           See 4.5.
  12439.  
  12440.     ISO/IEC TC130 (Color Prepress)
  12441.  
  12442.     ISO/IEC JTC 1/SC18 (Text and Office Systems
  12443.  
  12444.     ISO/IEC JTC 1/SC29 (Multimedia Coding)
  12445.  
  12446.                                                                             e
  12447.  
  12448.  
  12449.  
  12450.  
  12451.  
  12452.  
  12453.  
  12454.  
  12455.  
  12456.  
  12457.  
  12458.  
  12459.  
  12460.  
  12461.  
  12462.  
  12463.  
  12464.  
  12465.               Copyright (c) 1991 IEEE.  All rights reserved.
  12466.       This is an unapproved IEEE Standards Draft, subject to change.
  12467.  
  12468.  
  12469.  
  12470.  
  12471.  4.8 Graphics Services                                                 169
  12472.  
  12473.  
  12474.  
  12475.  
  12476.  
  12477.  
  12478.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  12479.  
  12480.  
  12481.  
  12482.  
  12483.  
  12484.  
  12485.  
  12486.  
  12487.  
  12488.  
  12489.  
  12490.  
  12491.  
  12492.  
  12493.  
  12494.  
  12495.  
  12496.  
  12497.  
  12498.  
  12499.  
  12500.  
  12501.  
  12502.  
  12503.  
  12504.  
  12505.  
  12506.  
  12507.  
  12508.  
  12509.  
  12510.  
  12511.  
  12512.  
  12513.  
  12514.  
  12515.  
  12516.  
  12517.  
  12518.  
  12519.  
  12520.  
  12521.  
  12522.  
  12523.  
  12524.  
  12525.  
  12526.  
  12527.  
  12528.  
  12529.  
  12530.  
  12531.               Copyright (c) 1991 IEEE.  All rights reserved.
  12532.       This is an unapproved IEEE Standards Draft, subject to change.
  12533.  
  12534.  
  12535.  
  12536.  
  12537.  170                              4 POSIX Open System Environment Services
  12538.  
  12539.  
  12540.  
  12541.  
  12542.  
  12543.  
  12544.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  12545.  
  12546.  4.9  Character-Based User Interface Services
  12547.  
  12548.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _M_a_r_t_i_a_l _V_a_n _N_e_s_t_e                                         _e
  12549.  
  12550.  
  12551.  4.9.1  Overview and Rationale
  12552.  
  12553.  This clause describes the system services that are related to character-
  12554.  based terminals.  It describes both the application program interfaces to
  12555.  character-based terminals and also the look and feel of the interaction
  12556.  between the user and the user interface equipment.
  12557.  
  12558.  Despite the attention paid to graphical window interfaces, the vast        e
  12559.  majority of applications are written with a character based user           e
  12560.  interface.  In fact, character-based devices are best suited for           e
  12561.  applications where the constraints of cost, speed, and the clutter of a    e
  12562.  pointing device on the desk are a major concern.                           e
  12563.  
  12564.  It should be noted also that there are character-based window              e
  12565.  applications that may not have all the flexibility and ease of use of      e
  12566.  their graphic counterparts, but represent an alternative allowing the      e
  12567.  utilization of the large installed base of character terminals and still   e
  12568.  improve the ease of use.                                                   e
  12569.  
  12570.  This clause is one portion of the User Interface API and EEI as described
  12571.  in Section 3.
  12572.  
  12573.  
  12574.  4.9.2  Scope
  12575.  
  12576.  The scope of this clause is limited to the services and standards
  12577.  required to support character (non-bitmapped) terminals.  The services     e
  12578.  described here do not preclude the use of block-mode terminals, even       e
  12579.  though most applications built on POSIX-compliant platforms historically   e
  12580.  have used character-stream terminals.                                      e
  12581.  
  12582.  
  12583.  4.9.3  Reference Model
  12584.  
  12585.  This subclause identifies the entities and interfaces specific to the
  12586.  character-based terminal services of an OSE.
  12587.  
  12588.  As illustrated in Figure 4-19, the components of character-based
  12589.  interfaces are broken into two groups:  those specifications that impact
  12590.  the application programming interface and those that impact the external
  12591.  user interface.
  12592.  
  12593.  This reference model is consistent with and expands on the reference
  12594.  model in Section 3.
  12595.  
  12596.  
  12597.               Copyright (c) 1991 IEEE.  All rights reserved.
  12598.       This is an unapproved IEEE Standards Draft, subject to change.
  12599.  
  12600.  
  12601.  
  12602.  
  12603.  4.9 Character-Based User Interface Services                           171
  12604.  
  12605.  
  12606.  
  12607.  
  12608.  
  12609.  
  12610.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  12611.  
  12612.  _________________________________________________________________________
  12613.  
  12614.  
  12615.  
  12616.  
  12617.  
  12618.  
  12619.  
  12620.  
  12621.  
  12622.  
  12623.  
  12624.  
  12625.  
  12626.  
  12627.  
  12628.  
  12629.  
  12630.  
  12631.  
  12632.  
  12633.  
  12634.  
  12635.  
  12636.  _________________________________________________________________________
  12637.          Figure 4-19  -  Character-based Terminal Reference Model
  12638.  
  12639.  
  12640.  4.9.4  Service Requirements
  12641.  
  12642.  The fundamental service requirements for character-based terminals are to
  12643.  allow applications to be written that make use of the features of a wide
  12644.  variety of terminals using a single terminal-independent interface.  The
  12645.  look and feel of user interactions should be consistent between            e
  12646.  applications to make moving between applications as simple as possible.
  12647.  
  12648.  4.9.4.1  Application Program Interface Services
  12649.  
  12650.  Application services include those made available to the application       e
  12651.  developer to separate the application function from the user interface     e
  12652.  functions as much as possible.                                             e
  12653.  
  12654.  These standard services support requirements for application portability   e
  12655.  and terminal independence.                                                 e
  12656.  
  12657.  _P_r_e_s_e_n_t_a_t_i_o_n__M_a_n_a_g_e_m_e_n_t                                                    e
  12658.  
  12659.  Functions available for Presentation Management are:                       e
  12660.  
  12661.  
  12662.  
  12663.               Copyright (c) 1991 IEEE.  All rights reserved.
  12664.       This is an unapproved IEEE Standards Draft, subject to change.
  12665.  
  12666.  
  12667.  
  12668.  
  12669.  172                              4 POSIX Open System Environment Services
  12670.  
  12671.  
  12672.  
  12673.  
  12674.  
  12675.  
  12676.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  12677.  
  12678.      - Placement of text on the screen using a consistent reference         e
  12679.  
  12680.      - Positioning of the cursor for further output on the scree or for     e
  12681.        user input                                                           e
  12682.  
  12683.      - Control of attributes of displayed text such as highlighting,        e
  12684.        underscoring, and coloring, if available                             e
  12685.  
  12686.      - Clearing or refreshing the screen                                    e
  12687.  
  12688.      - Getting the current cursor position                                  e
  12689.  
  12690.  _S_c_r_e_e_n__M_a_n_a_g_e_m_e_n_t                                                          e
  12691.  
  12692.  Functions available for Screen Management are:                             e
  12693.  
  12694.      - Control of the number and the width of the lines displayed           e
  12695.  
  12696.      - Use of a protected status line                                       e
  12697.  
  12698.      - Protection from writing or clearing in defined portions of the       e
  12699.        screen                                                               e
  12700.  
  12701.      - Auto-wrapping in defined portions of the screen                      e
  12702.  
  12703.  _I_n_p_u_t__D_e_v_i_c_e__M_a_n_a_g_e_m_e_n_t                                                    e
  12704.  
  12705.  Functions available for Input Device Management are:                       e
  12706.  
  12707.      - Configuration of the function keys, if available                     e
  12708.  
  12709.      - Keyboard locking                                                     e
  12710.  
  12711.      - Changing key mappings                                                e
  12712.  
  12713.  _F_o_r_m__M_a_n_a_g_e_m_e_n_t                                                            e
  12714.  
  12715.  Functions available for Form Management are:                               e
  12716.  
  12717.      - Definition of a form with different output and input text fields     e
  12718.  
  12719.      - Definition of the attribute input fields, such as text or different  e
  12720.        numeric formats                                                      e
  12721.  
  12722.      - Generic and customizable error handling procedures for incorrect     e
  12723.        input                                                                e
  12724.  
  12725.  
  12726.  
  12727.  
  12728.  
  12729.               Copyright (c) 1991 IEEE.  All rights reserved.
  12730.       This is an unapproved IEEE Standards Draft, subject to change.
  12731.  
  12732.  
  12733.  
  12734.  
  12735.  4.9 Character-Based User Interface Services                           173
  12736.  
  12737.  
  12738.  
  12739.  
  12740.  
  12741.  
  12742.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  12743.  
  12744.  4.9.4.2  External Environment Interface Services
  12745.  
  12746.  The look and feel of user interactions with applications should be
  12747.  standardized to make moving between applications as simple as possible.
  12748.  The areas that require standardization are:
  12749.                                                                             e
  12750.  
  12751.      - Style of selecting commands                                          e
  12752.  
  12753.      - Accessing online help                                                e
  12754.  
  12755.      - Performing common functions such as page forward and page            e
  12756.        backwards.                                                           e
  12757.  
  12758.      - Selecting or moving between fields in a forms-based environment      e
  12759.  
  12760.  These interactions will differ slightly between different types of
  12761.  terminals because of limitations of the terminals.
  12762.  
  12763.  4.9.4.3  Related Service Requirements
  12764.  
  12765.  To be provided.
  12766.  
  12767.  
  12768.  4.9.5  Standards, Specifications, and Gaps
  12769.  
  12770.  4.9.5.1  Current Standards
  12771.  
  12772.  None.
  12773.  
  12774.  4.9.5.2  Emerging Standards
  12775.  
  12776.  _F_I_M_S
  12777.  
  12778.  ANSI CODASYL.  A working draft is available for Forms Interface
  12779.  Management System (FIMS), which covers the interface between a
  12780.  programming language and any form-filling application on a computer or
  12781.  terminal screen.
  12782.  
  12783.  This specification addresses some of the services requirements for a
  12784.  forms-based user interface.
  12785.  
  12786.  4.9.5.3  Gaps in Available Standards
  12787.  
  12788.  
  12789.  
  12790.  
  12791.  
  12792.  
  12793.  
  12794.  
  12795.               Copyright (c) 1991 IEEE.  All rights reserved.
  12796.       This is an unapproved IEEE Standards Draft, subject to change.
  12797.  
  12798.  
  12799.  
  12800.  
  12801.  174                              4 POSIX Open System Environment Services
  12802.  
  12803.  
  12804.  
  12805.  
  12806.  
  12807.  
  12808.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  12809.  
  12810.  4.9.5.3.1  Public Specifications
  12811.  
  12812.                                                                             e
  12813.  
  12814.  _C_u_r_s_e_s
  12815.  
  12816.  Curses is a set of subroutines that provide a terminal-independent
  12817.  interface to applications.  Many different types of character-based
  12818.  terminals are supported.  Curses lacks complete support for flexible user
  12819.  input.
  12820.  
  12821.  This specification satisfies some of the service requirements for          e
  12822.  character mode terminals.  A recent specification for Curses can be found  e
  12823.  in volume 3 of X/Open's XPG3.                                              e
  12824.  
  12825.  
  12826.  4.9.6  OSE Cross-Category Services
  12827.  
  12828.  4.9.6.1  Security
  12829.  
  12830.  _T_o _B_e _P_r_o_v_i_d_e_d.                                                            e
  12831.  
  12832.  4.9.6.2  Administration
  12833.  
  12834.  It is important to allow the system management personnel to configure the
  12835.  system to designate where each terminal is connected.  Also needed is the
  12836.  ability to add support for new terminals without affecting the
  12837.  application interface.
  12838.  
  12839.  4.9.6.3  Configuration Management
  12840.  
  12841.  The system could include a descriptive database of a current set of        e
  12842.  supported terminals, so that terminal-independent services can do the      e
  12843.  mapping for the different functions.                                       e
  12844.  
  12845.  
  12846.  4.9.7  Related Standards
  12847.  
  12848.  None.
  12849.  
  12850.  
  12851.  
  12852.  
  12853.  
  12854.  
  12855.  
  12856.  
  12857.  
  12858.  
  12859.  
  12860.  
  12861.               Copyright (c) 1991 IEEE.  All rights reserved.
  12862.       This is an unapproved IEEE Standards Draft, subject to change.
  12863.  
  12864.  
  12865.  
  12866.  
  12867.  4.9 Character-Based User Interface Services                           175
  12868.  
  12869.  
  12870.  
  12871.  
  12872.  
  12873.  
  12874.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  12875.  
  12876.  
  12877.  
  12878.  
  12879.  
  12880.  
  12881.  
  12882.  
  12883.  
  12884.  
  12885.  
  12886.  
  12887.  
  12888.  
  12889.  
  12890.  
  12891.  
  12892.  
  12893.  
  12894.  
  12895.  
  12896.  
  12897.  
  12898.  
  12899.  
  12900.  
  12901.  
  12902.  
  12903.  
  12904.  
  12905.  
  12906.  
  12907.  
  12908.  
  12909.  
  12910.  
  12911.  
  12912.  
  12913.  
  12914.  
  12915.  
  12916.  
  12917.  
  12918.  
  12919.  
  12920.  
  12921.  
  12922.  
  12923.  
  12924.  
  12925.  
  12926.  
  12927.               Copyright (c) 1991 IEEE.  All rights reserved.
  12928.       This is an unapproved IEEE Standards Draft, subject to change.
  12929.  
  12930.  
  12931.  
  12932.  
  12933.  176                              4 POSIX Open System Environment Services
  12934.  
  12935.  
  12936.  
  12937.  
  12938.  
  12939.  
  12940.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  12941.  
  12942.  4.10  User Command Interface Services
  12943.  
  12944.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _W_e_n_d_y _R_a_u_c_h
  12945.  
  12946.  
  12947.  4.10.1  Rationale and Overview
  12948.  
  12949.  Although system-level services are necessary for application portability
  12950.  and interoperability, they are insufficient for many users' system needs.
  12951.  To maximize portability, users also require the commands, command
  12952.  interpreter (shell), compilers, editors, and other utilities that have
  12953.  been traditionally associated with many operating systems.  These command
  12954.  interface services facilitate a successful port and help users to manage
  12955.  and maintain applications and to solve problems on an ad hoc basis.  The
  12956.  standardization of these utilities allows users and programmers to move
  12957.  from platform to platform without having to relearn the command interface
  12958.  for each application platform.
  12959.  
  12960.  
  12961.  4.10.2  Scope
  12962.  
  12963.  This clause describes how a user interacts with an application platform
  12964.  by executing general purpose commands.  This command interface is also
  12965.  available to applications so that applications also can execute commands.
  12966.  A standardized command interface provides a consistent, interactive
  12967.  environment across platforms for users and programmers.
  12968.  
  12969.  Commands that are outside the scope of this clause are:
  12970.  
  12971.      - System administration and installation commands
  12972.  
  12973.      - Text formatting programs
  12974.  
  12975.      - Database commands
  12976.  
  12977.      - Networking and communications commands
  12978.  
  12979.      - Graphical user interfaces
  12980.  
  12981.  Networking commands and graphical user interfaces are described in other
  12982.  clauses of this guide.
  12983.  
  12984.  
  12985.  4.10.3  Reference Model
  12986.  
  12987.  The use of the command interface services presented in this clause is
  12988.  consistent with the reference model in Section 3.  The POSIX OSE
  12989.  reference model for the command interface also is consistent with typical
  12990.  implementations for user command languages in traditional UNIX-based
  12991.  
  12992.  
  12993.               Copyright (c) 1991 IEEE.  All rights reserved.
  12994.       This is an unapproved IEEE Standards Draft, subject to change.
  12995.  
  12996.  
  12997.  
  12998.  
  12999.  4.10 User Command Interface Services                                  177
  13000.  
  13001.  
  13002.  
  13003.  
  13004.  
  13005.  
  13006.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  13007.  
  13008.  _________________________________________________________________________
  13009.  
  13010.  
  13011.  
  13012.  
  13013.  
  13014.  
  13015.  
  13016.  
  13017.  
  13018.  
  13019.  
  13020.  
  13021.  
  13022.  
  13023.  
  13024.  
  13025.  _________________________________________________________________________
  13026.      Figure 4-20  -  POSIX OSE Reference Model for Command Interfaces
  13027.  
  13028.  
  13029.  systems.
  13030.  
  13031.  As Figure 4-20 shows, the command interface is available both to users
  13032.  (through the External Environment Interface) and to applications (through
  13033.  the Application Programming Interface).  Any operating system
  13034.  implementation can reside underneath the APIs and EEIs.
  13035.  
  13036.  The API and EEI command interfaces provide access to a software component
  13037.  (known as a command interpreter or shell) that interprets the commands
  13038.  issued by either the user or the application.  The command interpreter
  13039.  acts as an intermediary between the command API and EEI and the base
  13040.  application platform's system-level services.  The command interpreter
  13041.  reads the commands entered and parses them.  Depending on the type of
  13042.  command (e.g., utility or built-in shell command), the command
  13043.  interpreter either executes the command for the user or application,
  13044.  using the base application platform's system-level services, or it calls
  13045.  on the system-level services to create a new process which executes the
  13046.  command.
  13047.  
  13048.  None of the methods of executing commands have an impact on the API or
  13049.  EEI specifications.
  13050.  
  13051.  The commands interfaces may be available to users and applications either
  13052.  locally or remotely.  Remote invocation of a system's command interfaces
  13053.  is provided through networking and data interchange capabilities.  These
  13054.  are described in 4.3 and 4.5.  Alternatively, remote access to a system's
  13055.  command interfaces may be available through certain interapplication
  13056.  services.
  13057.  
  13058.  
  13059.               Copyright (c) 1991 IEEE.  All rights reserved.
  13060.       This is an unapproved IEEE Standards Draft, subject to change.
  13061.  
  13062.  
  13063.  
  13064.  
  13065.  178                              4 POSIX Open System Environment Services
  13066.  
  13067.  
  13068.  
  13069.  
  13070.  
  13071.  
  13072.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  13073.  
  13074.  4.10.4  Service Requirements
  13075.  
  13076.  There are three major aspects of command interface services that must be
  13077.  addressed for practical support of multivendor application portability
  13078.  and system interoperability.  The first aspect consists of the basic
  13079.  functionality and interfaces provided for generally usefulness.  The
  13080.  second aspect of command interface services concerns the ability to move
  13081.  applications, such as script files, between platforms.  The third aspect
  13082.  concerns user portability so that the same user interface is available on
  13083.  different platforms.
  13084.  
  13085.  Since most command interfaces are available at the API and EEI, the
  13086.  service requirements for the API and the EEI are very similar.  This
  13087.  clause, therefore, discusses primarily the EEI command interface
  13088.  requirements.  The API service subclause discusses only the additional
  13089.  service requirements for applications.
  13090.  
  13091.  4.10.4.1  Application Program Interface Services
  13092.  
  13093.  In a command API, the output syntax of the commands and command responses
  13094.  (such as error messages) need to be standardized, in addition to the
  13095.  calling sequence and allowable inputs.  Such standardization is necessary
  13096.  to allow applications executing a command to reliably parse the output of
  13097.  that command.
  13098.  
  13099.  The API should be able to access all of the services available to the
  13100.  user at the EEI.  The additional service requirements for the API are as
  13101.  follows:
  13102.  
  13103.      - Ability to provide the input to the command and access the output
  13104.        of the command when necessary
  13105.  
  13106.      - Ability for the application to detect and correct errors as the
  13107.        command is executed
  13108.  
  13109.      - Ability to abort or suspend the command as it is executing.
  13110.  
  13111.  It is also important to have the ability to create script files which are
  13112.  combinations of commands.  The scripting language developed for this
  13113.  purpose is an application development language.  The scripting language
  13114.  has the following requirements:
  13115.  
  13116.      - Conditional execution primitives
  13117.  
  13118.      - Repeated execution primitives
  13119.  
  13120.      - Ability to display output
  13121.  
  13122.  
  13123.  
  13124.  
  13125.               Copyright (c) 1991 IEEE.  All rights reserved.
  13126.       This is an unapproved IEEE Standards Draft, subject to change.
  13127.  
  13128.  
  13129.  
  13130.  
  13131.  4.10 User Command Interface Services                                  179
  13132.  
  13133.  
  13134.  
  13135.  
  13136.  
  13137.  
  13138.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  13139.  
  13140.      - Ability to prompt the user for input
  13141.  
  13142.      - Ability to execute commands and obtain error information.
  13143.  
  13144.  The services and standards for the scripting language are described in
  13145.  this clause, rather than in the Languages clause 4.1, because it is so
  13146.  closely related to the command interface.
  13147.  
  13148.  4.10.4.2  External Environment Interface Services
  13149.  
  13150.  Users need a number of capabilities in order to work on a system.  On a
  13151.  traditional system, these are implemented by providing interactive
  13152.  commands entered via a keyboard.  However, as graphical user interfaces
  13153.  evolve, these commands may also be implemented by clicking on a mouse in
  13154.  a particular area of the screen, by a touch screen, a tablet, or other     e
  13155.  input device.                                                              e
  13156.  
  13157.  The major services at the EEI provide the following abilities:
  13158.  
  13159.      - Capture the output of a command or application into a file
  13160.  
  13161.      - Redirect the input for a command from a file
  13162.  
  13163.      - Direct the output of a command to be used as the input to another
  13164.        command
  13165.  
  13166.      - Execute applications
  13167.  
  13168.      - Get online help for commands or applications
  13169.  
  13170.      - Manipulate file contents:
  13171.  
  13172.         +o Cutting
  13173.  
  13174.         +o Pasting
  13175.  
  13176.         +o Concatenating
  13177.  
  13178.         +o Converting
  13179.  
  13180.         +o Sorting
  13181.  
  13182.         +o Reformatting
  13183.  
  13184.         +o Comparing
  13185.  
  13186.         +o Searching for regular expression
  13187.  
  13188.  
  13189.  
  13190.  
  13191.               Copyright (c) 1991 IEEE.  All rights reserved.
  13192.       This is an unapproved IEEE Standards Draft, subject to change.
  13193.  
  13194.  
  13195.  
  13196.  
  13197.  180                              4 POSIX Open System Environment Services
  13198.  
  13199.  
  13200.  
  13201.  
  13202.  
  13203.  
  13204.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  13205.  
  13206.      - Edit files
  13207.  
  13208.         +o Interactive editors
  13209.  
  13210.         +o Batch or ``stream'' editors
  13211.  
  13212.      - Display files
  13213.  
  13214.         +o Pausing when necessary
  13215.  
  13216.         +o Display only selected ranges of files
  13217.  
  13218.      - Manipulate files
  13219.  
  13220.         +o Create
  13221.  
  13222.         +o Delete
  13223.  
  13224.         +o Rename
  13225.  
  13226.         +o Move
  13227.  
  13228.         +o Copy
  13229.  
  13230.      - Print files
  13231.  
  13232.      - Perform network functions
  13233.  
  13234.         +o File transfer
  13235.  
  13236.         +o Remote execution of commands
  13237.  
  13238.         +o Remote file printing
  13239.  
  13240.      - Perform batch processing                                             e
  13241.  
  13242.         +o Create and manage batch queues                                    e
  13243.  
  13244.         +o Submit, terminate, and get status of jobs                         e
  13245.  
  13246.         +o Retrieve output                                                   e
  13247.  
  13248.      - Manipulate and display directories
  13249.  
  13250.         +o Create
  13251.  
  13252.         +o Delete
  13253.  
  13254.  
  13255.  
  13256.  
  13257.               Copyright (c) 1991 IEEE.  All rights reserved.
  13258.       This is an unapproved IEEE Standards Draft, subject to change.
  13259.  
  13260.  
  13261.  
  13262.  
  13263.  4.10 User Command Interface Services                                  181
  13264.  
  13265.  
  13266.  
  13267.  
  13268.  
  13269.  
  13270.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  13271.  
  13272.         +o Display
  13273.  
  13274.         +o Destroy (Delete a directory and all its subdirectories and
  13275.           files)
  13276.  
  13277.      - Control file and directory permissions
  13278.  
  13279.      - Communicate with other users
  13280.  
  13281.         +o Electronic mail
  13282.  
  13283.         +o Online interaction where two or more users communicate with each
  13284.           other simultaneously
  13285.  
  13286.      - Control the application execution environment
  13287.  
  13288.         +o Execute applications in the background
  13289.  
  13290.         +o Abort applications running in the foreground or background
  13291.  
  13292.         +o Suspend an application
  13293.  
  13294.         +o Move an application running in foreground mode to the background
  13295.  
  13296.      - Schedule commands for periodic execution
  13297.  
  13298.      - Control the users' input equipment, such as a terminal or graphical
  13299.        user interface
  13300.  
  13301.      - Manage local environment and configuration information
  13302.  
  13303.      - Query local environment and configuration data
  13304.  
  13305.      - Configure an environment for an international locale.
  13306.  
  13307.                                                                             e
  13308.  These services enable remote users and applications to access and execute
  13309.  a system's command interfaces as if they were directly connected to that
  13310.  system.  The major categories of interapplication entity services include
  13311.  the following:
  13312.  
  13313.      - Login and use hosts on a network as if the users logging-in were
  13314.        directly connected to the local terminal
  13315.  
  13316.      - Remotely execute a system's shell commands as if the user were
  13317.        directly connected to a local terminal
  13318.  
  13319.      - Copy files between hosts without going through a network file
  13320.        transfer program
  13321.  
  13322.  
  13323.               Copyright (c) 1991 IEEE.  All rights reserved.
  13324.       This is an unapproved IEEE Standards Draft, subject to change.
  13325.  
  13326.  
  13327.  
  13328.  
  13329.  182                              4 POSIX Open System Environment Services
  13330.  
  13331.  
  13332.  
  13333.  
  13334.  
  13335.  
  13336.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  13337.  
  13338.      - Find out who else is logged into the machines on a local-area
  13339.        network
  13340.  
  13341.      - Query the status and uptime of all machines on a local-area
  13342.        network.
  13343.  
  13344.  
  13345.  4.10.5  Standards, Specifications, and Gaps
  13346.  
  13347.  There are currently no formal standards for command interfaces.  There
  13348.  are, however, several command-interface standards-development activities
  13349.  underway.  In addition, there are several consortia-defined
  13350.  specifications and de facto specification standards for commands, shell,
  13351.  and utilities services and interfaces.
  13352.  
  13353.  Table 4-12 summarizes the shell and utilities standards and
  13354.  specifications and work in progress.
  13355.  
  13356.  
  13357.                Table 4-12  -  Shell and Utilities Standards
  13358.  __________________________________________________________________________________________________________________________________________________
  13359.               Service                Type     Specification     Subclause
  13360.   _______________________________________________________________________
  13361.  
  13362.   Shell and Utilities                 E     IEEE POSIX.2        4.10.5.2    ee
  13363.  
  13364.   User Portability Extension (UPE)    E     IEEE POSIX.2a       4.10.5.2    ee
  13365.  
  13366.   Control of interprocess             E     IEEE POSIX.4        4.10.5.2    eee
  13367.   communications, shared memory,                                            e
  13368.   and semaphores                                                            e
  13369.  
  13370.   File transfer utilities, remote     G     X/Open XPG3,        4.10.5.3    eeee
  13371.   command execution, remote file            OSF OSF/1,                      ee
  13372.   printing, electronic mail,                SVID,                           ee
  13373.   operating-system-based software           Berkeley BSD 4.x                ee
  13374.   development aids                          UNIX                            ee
  13375.  __________________________________________________________________________________________________________________________________________________
  13376.  
  13377.  
  13378.  4.10.5.1  Current Standards
  13379.  
  13380.                                                                             e
  13381.  There are no currently completed or approved international or national
  13382.  standards for commands and utilities.
  13383.  
  13384.  
  13385.  
  13386.  
  13387.  
  13388.  
  13389.               Copyright (c) 1991 IEEE.  All rights reserved.
  13390.       This is an unapproved IEEE Standards Draft, subject to change.
  13391.  
  13392.  
  13393.  
  13394.  
  13395.  4.10 User Command Interface Services                                  183
  13396.  
  13397.  
  13398.  
  13399.  
  13400.  
  13401.  
  13402.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  13403.  
  13404.  4.10.5.2  Emerging Standards
  13405.  
  13406.  _I_E_E_E__P_O_S_I_X_._2                                                               e
  13407.  
  13408.  When completed, the IEEE POSIX.2 standard will define a source code
  13409.  interface to command interpretation or shell services and common utility
  13410.  programs for application programs.  These services and programs are
  13411.  complementary to those specified by POSIX.1 {2}.
  13412.  
  13413.  The IEEE POSIX.2a User Portability Extension will supplement POSIX.2 by
  13414.  extending the specifications to promote the portability of users and
  13415.  programmers, in addition to applications, across conforming systems.
  13416.  Toward this end, the POSIX.2a specifications expand the number and type
  13417.  of utilities specified, and enhance the features of a number of POSIX.2-
  13418.  specified utilities, to provide a consistent interactive environment.
  13419.  The consistent interactive environment does not include emerging
  13420.  technologies such as graphical user interfaces, which are under
  13421.  development by different standards groups.
  13422.  
  13423.  Parts of POSIX.2 go beyond the current service requirements and include a
  13424.  number of software development and debugging commands and utilities
  13425.  services.  These are included in the POSIX.2 specification because of the
  13426.  traditional development orientation of UNIX systems.  These software
  13427.  development and debugging services are not included in this clause
  13428.  because this clause includes more general and universal services, such as
  13429.  copying a file and reading a directory.
  13430.  
  13431.  Although the POSIX.2 and POSIX.2a specifications are still in draft
  13432.  stages, they are relatively complete, and portions of the emerging
  13433.  standard are believed to be mature and stable.
  13434.  
  13435.  When the commands, shell, and utilities specifications are completed and
  13436.  approved, the resulting IEEE POSIX.2 and POSIX.2a standards will be
  13437.  submitted to ISO/IEC JTC1 for adoption as international standards.  At
  13438.  that time, POSIX.2 and POSIX.2a will be combined into a single integrated
  13439.  international standard (ISO/IEC 9945-2).
  13440.  
  13441.  _I_E_E_E__P_1_0_0_3_._1_5                                                              e
  13442.  
  13443.  When completed, the IEEE P1003.15 standard will provide batch queueing     e
  13444.  extensions to various POSIX base standards.  These extensions define       e
  13445.  utilities, library routines, system administration interfaces, and an      e
  13446.  application-level protocol to address the following areas:                 e
  13447.  
  13448.      - Utilities for submission and management of requests                  e
  13449.  
  13450.      - System administration interfaces for the creation, management, and   e
  13451.        authorization of the network queueing and batch processing system    e
  13452.  
  13453.  
  13454.  
  13455.               Copyright (c) 1991 IEEE.  All rights reserved.
  13456.       This is an unapproved IEEE Standards Draft, subject to change.
  13457.  
  13458.  
  13459.  
  13460.  
  13461.  184                              4 POSIX Open System Environment Services
  13462.  
  13463.  
  13464.  
  13465.  
  13466.  
  13467.  
  13468.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  13469.  
  13470.      - language-independent programmatic (library) interfaces for           e
  13471.        application access to utilities and the queue and request database,  e
  13472.        and                                                                  e
  13473.  
  13474.      - Application-level network protocols                                  e
  13475.  
  13476.  4.10.5.3  Gaps in Available Standards
  13477.  
  13478.  There are no formal interapplication standards that address the remote
  13479.  access and execution of a system's command interfaces.  The Berkeley BSD
  13480.  UNIX de facto standard addresses all these service requirements, however.
  13481.  
  13482.  4.10.5.3.1  Public Specifications
  13483.  
  13484.  Public specifications that include the POSIX.2 and POSIX.2a, and go
  13485.  beyond these standards to also include the traditional UNIX-based command
  13486.  interfaces for electronic mail, remote command execution, file transfer,   e
  13487.  interprocess communications, shared memory, semaphores, and software       e
  13488.  development utilities are available from a number of organizations.        e
  13489.  These include:                                                             e
  13490.  
  13491.      - OSF's OSF/1 Application Environment Specifications (AES)             e
  13492.  
  13493.      - AT&T System V Interface Definition (SVID)                            e
  13494.  
  13495.      - X/Open's XPG3 specifications, Volume 1 and part of Volume 3
  13496.  
  13497.  
  13498.  4.10.6  POSIX OSE Cross-Category Services
  13499.  
  13500.  4.10.6.1  Internationalization
  13501.  
  13502.  The utilities described in the POSIX.2 specifications satisfy some         e
  13503.  requirements for standardized multilingual and multicultural support
  13504.  (e.g., localization requirements such as date formats and collation
  13505.  sequences, and support for international character sets).
  13506.  
  13507.  
  13508.  4.10.7  Related Standards
  13509.  
  13510.  None.                                                                      e
  13511.  
  13512.  
  13513.  
  13514.  
  13515.  
  13516.  
  13517.  
  13518.  
  13519.  
  13520.  
  13521.               Copyright (c) 1991 IEEE.  All rights reserved.
  13522.       This is an unapproved IEEE Standards Draft, subject to change.
  13523.  
  13524.  
  13525.  
  13526.  
  13527.  4.10 User Command Interface Services                                  185
  13528.  
  13529.  
  13530.  
  13531.  
  13532.  
  13533.  
  13534.  
  13535.  
  13536.  
  13537.  
  13538.  
  13539.  
  13540.  
  13541.  
  13542.  
  13543.  
  13544.  
  13545.  
  13546.  
  13547.  
  13548.  
  13549.  
  13550.  
  13551.  
  13552.  
  13553.  
  13554.  
  13555.  
  13556.  
  13557.  
  13558.  
  13559.  
  13560.  
  13561.  
  13562.  
  13563.  
  13564.  
  13565.  
  13566.  
  13567.  
  13568.  
  13569.  
  13570.  
  13571.  
  13572.  
  13573.  
  13574.  
  13575.  
  13576.  
  13577.  
  13578.  
  13579.  
  13580.  
  13581.  
  13582.  
  13583.  
  13584.  
  13585.  
  13586.  
  13587.  
  13588.  
  13589.  
  13590.  
  13591.  
  13592.  
  13593.  
  13594.  
  13595.  
  13596.  
  13597.  
  13598.  
  13599.  
  13600.                                                                P1003.0/D14
  13601.  
  13602.  
  13603.  
  13604.  
  13605.  
  13606.  
  13607.  
  13608.  
  13609.                Section 5: POSIX OSE Cross-Category Services
  13610.  
  13611.  
  13612.  
  13613.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _F_r_i_t_z _S_c_h_u_l_z
  13614.  
  13615.  The POSIX reference model defines a set of conceptual system building
  13616.  blocks that collectively describes the Open System Environment.  Each
  13617.  building block provides a specific set of interfaces for access to their
  13618.  associated facilities and services.  There is another class of services
  13619.  and requirements, however, that may influence and/or impact the basic
  13620.  architectural building blocks; these are referred to as OSE Cross-
  13621.  Category Services.
  13622.  
  13623.  An OSE Cross-Category Service is a set of tools and/or features that,
  13624.  when applied, may have a direct affect on the operation of one or more of
  13625.  the Open System Components, but it is not in and of itself a standalone
  13626.  OSE component.  Examples of OSE Cross-Category Services include
  13627.  internationalization, security and privacy, administration, etc.
  13628.  Internationalization has a number of attributes that influence multiple
  13629.  OSE components; supporting multiple coded character sets, for example,
  13630.  will affect end-user interfaces, operational message input and output,
  13631.  screen display, data collating sequences in programming languages and
  13632.  database systems, etc.
  13633.  
  13634.  This section will deal with the general characteristics of OSE Cross-
  13635.  Category Services as applied to the OSE architectural components and to
  13636.  the profiles and domains that characterize application environments.  The
  13637.  specific impact/influence of an OSE Cross-Category Service will be
  13638.  described in the appropriate subclause of Section 4 that deals with
  13639.  individual OSE Components.
  13640.  
  13641.  Initially, this section will address Internationalization, Security and
  13642.  Privacy, and System Administration; however, it is anticipated that other
  13643.  OSE Cross-Category Services will be identified as the concept is applied
  13644.  to the model.
  13645.  
  13646.  This section describes issues that should be considered in writing
  13647.  profiles, and is organized so that subclauses for each OSE Cross-Category
  13648.  Service points to, and addresses issues adjacent to each of the service
  13649.  categories identified in Section 4.
  13650.  
  13651.  
  13652.  
  13653.               Copyright (c) 1991 IEEE.  All rights reserved.
  13654.       This is an unapproved IEEE Standards Draft, subject to change.
  13655.  
  13656.  
  13657.  
  13658.  
  13659.  5 POSIX OSE Cross-Category Services                                   187
  13660.  
  13661.  
  13662.  
  13663.  
  13664.  
  13665.  
  13666.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  13667.  
  13668.  These issues defined areas that need to be traded off to arrive at
  13669.  balanced solutions for a specific profile.  It is expected that the
  13670.  specific trades would be made by the profiler, but that this clause could
  13671.  give guidance for trading and could also be used to accumulate lessons
  13672.  learned.
  13673.  
  13674.  
  13675.  
  13676.  
  13677.  
  13678.  
  13679.  
  13680.  
  13681.  
  13682.  
  13683.  
  13684.  
  13685.  
  13686.  
  13687.  
  13688.  
  13689.  
  13690.  
  13691.  
  13692.  
  13693.  
  13694.  
  13695.  
  13696.  
  13697.  
  13698.  
  13699.  
  13700.  
  13701.  
  13702.  
  13703.  
  13704.  
  13705.  
  13706.  
  13707.  
  13708.  
  13709.  
  13710.  
  13711.  
  13712.  
  13713.  
  13714.  
  13715.  
  13716.  
  13717.  
  13718.  
  13719.               Copyright (c) 1991 IEEE.  All rights reserved.
  13720.       This is an unapproved IEEE Standards Draft, subject to change.
  13721.  
  13722.  
  13723.  
  13724.  
  13725.  188                                   5 POSIX OSE Cross-Category Services
  13726.  
  13727.  
  13728.  
  13729.  
  13730.  
  13731.  
  13732.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  13733.  
  13734.  5.1  Internationalization
  13735.  
  13736.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _R_a_l_p_h _B_a_r_k_e_r
  13737.  
  13738.  _E_d_i_t_o_r'_s _N_o_t_e:  _A_l_m_o_s_t _a_l_l _i_n_s_t_a_n_c_e_s _o_f ``_m_u_s_t'' _i_n _t_h_i_s _c_l_a_u_s_e _h_a_v_e _b_e_e_n  e
  13739.  _c_h_a_n_g_e_d _t_o ``_s_h_o_u_l_d'' _w_i_t_h_o_u_t _f_u_r_t_h_e_r _d_i_f_f _m_a_r_k_s.                          e
  13740.  
  13741.  
  13742.  5.1.1  Overview and Rationale
  13743.  
  13744.  Historically, information systems intended for use within a particular
  13745.  national or cultural market have been designed specifically for the
  13746.  requirements of that market.  If the vendor or developer was based in a
  13747.  country other than that of the target market, this was typically
  13748.  accomplished through substantial re-engineering the features of an
  13749.  existing system designed for some other country, and doing so at
  13750.  considerable cost.  As the developer desired to market the system in
  13751.  additional countries, the process of re-engineering was repeated for each
  13752.  new national or cultural market.  Application software developers were
  13753.  faced with the same problem.  The very nature of this style of
  13754.  development produced little concern for portability across national or
  13755.  cultural boundaries, or interoperability between them.  Users or
  13756.  organizations that needed to operate in multiple national or cultural
  13757.  markets typically did so with multiple, generally incompatible,
  13758.  information processing systems.
  13759.  
  13760.  The interfaces provided by the POSIX Open System Environment (POSIX OSE)
  13761.  can be generalized, however, through the use of internationalization, to
  13762.  extend across national and cultural boundaries.  Such a model provides
  13763.  the foundation for international portability of application software,
  13764.  increased user portability, and enhanced interoperability and data
  13765.  exchange capabilities.  The task of internationalization is to ensure
  13766.  that the services provided by the POSIX OSE, and the interfaces between
  13767.  such services, are specified in such a way that they can be easily used
  13768.  all over the world.  Additionally, as the user is likely to require
  13769.  services from any or all of the service categories of the POSIX OSE,
  13770.  internationalization impacts all areas of the POSIX OSE, and should be
  13771.  viewed as an OSE Cross-Category Service.  Since the internationalization
  13772.  aspects of general OSE services and application program interface (API)
  13773.  services are similar for all of the POSIX OSE service categories, they
  13774.  are discussed here rather than repeating them in each of the services
  13775.  sections within this guide.
  13776.  
  13777.  The ability of the service categories of the POSIX OSE to support
  13778.  multiple natural languages, and the underlying cultural conventions, is a
  13779.  two step process.  These two steps are generally referred to as
  13780.  ``internationalization'' and ``localization.''  First, the interfaces
  13781.  between the service categories are generalized, so that they are not
  13782.  oriented to the requirements of any particular natural language or set of
  13783.  
  13784.  
  13785.               Copyright (c) 1991 IEEE.  All rights reserved.
  13786.       This is an unapproved IEEE Standards Draft, subject to change.
  13787.  
  13788.  
  13789.  
  13790.  
  13791.  5.1 Internationalization                                              189
  13792.  
  13793.  
  13794.  
  13795.  
  13796.  
  13797.  
  13798.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  13799.  
  13800.  cultural conventions (internationalization).  Then, facilities are
  13801.  provided by the POSIX OSE that allow the user to select the desired
  13802.  natural language and cultural conventions (localization).  Tools are
  13803.  provided to facilitate this process.
  13804.  
  13805.  Within this context, cultural conventions, while discussed more fully
  13806.  later in this clause, may be viewed as various aspects of how information
  13807.  is presented to the user.  Different cultures, for example, use different
  13808.  formats for dates and numeric values and use different currency symbols.
  13809.  The interfaces provided by the POSIX OSE should allow the information to
  13810.  be presented to the user in the appropriate format as well as the
  13811.  appropriate natural language.
  13812.  
  13813.  
  13814.  5.1.2  Scope
  13815.  
  13816.  The POSIX OSE provides services that are necessary to support users,
  13817.  irrespective of their particular natural language or cultural
  13818.  conventions.  While it is not expected that every implementation of the
  13819.  POSIX OSE would provide support for all possible natural languages and
  13820.  cultural conventions, the specification of the services and the
  13821.  interfaces within the POSIX OSE should not preclude such support.  In
  13822.  addition to the service and interface requirements described here, it
  13823.  should be noted that internationalization is affected by a number of
  13824.  elements that are beyond the scope of this guide.  Actual implementations
  13825.  of the internationalized POSIX OSE, for example, may need to consider the
  13826.  impact of multiple sets of governmental and regulatory agencies,
  13827.  international data communication standards and other elements which are
  13828.  presently not specified within the POSIX OSE, such as data portability
  13829.  between localized information processing systems.
  13830.  
  13831.  Service requirements differ from country to country and even between
  13832.  users within one country.  Many users, for example, may require the
  13833.  simultaneous support of multiple natural languages and cultural
  13834.  convention sets.  Therefore, the basic internationalization requirement
  13835.  within the POSIX OSE is to provide a set of services and interfaces that
  13836.  allow the user to define, select, and change between different culturally
  13837.  related application operating environments supported by the particular
  13838.  implementation.  Specifically:
  13839.  
  13840.      - The POSIX OSE should provide the means of adjusting the output of
  13841.        specific functions and utilities to support different natural
  13842.        languages, cultural conventions and character sets as may be
  13843.        required by the supported natural languages.
  13844.  
  13845.      - A user should have the capability to select an internationalized
  13846.        user environment that specifies a particular set of data
  13847.        presentation characteristics, including cultural conventions,
  13848.        character sets and native language.
  13849.  
  13850.  
  13851.               Copyright (c) 1991 IEEE.  All rights reserved.
  13852.       This is an unapproved IEEE Standards Draft, subject to change.
  13853.  
  13854.  
  13855.  
  13856.  
  13857.  190                                   5 POSIX OSE Cross-Category Services
  13858.  
  13859.  
  13860.  
  13861.  
  13862.  
  13863.  
  13864.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  13865.  
  13866.      - An implementation of the POSIX OSE should be able to concurrently
  13867.        support different applications functioning in different
  13868.        internationalized user environments, supplying different sets of
  13869.        natural languages, cultural conventions and character sets for
  13870.        different users.
  13871.  
  13872.      - The capability of supporting different internationalized user
  13873.        environments, and the associated natural languages, cultural
  13874.        conventions and character sets, should not require any changes to
  13875.        the logic of existing application programs.
  13876.  
  13877.      - The effect of the user selecting a new internationalized user
  13878.        environment, and its associated natural language, cultural
  13879.        conventions and character set, should be transparent to application
  13880.        programs.
  13881.  
  13882.      - The model should be flexible, to support future extensions and
  13883.        requirements.
  13884.  
  13885.  
  13886.  5.1.3  Reference Model
  13887.  
  13888.  Internationalization is an OSE Cross-Category Service, spanning all OSE
  13889.  service categories.  While various reference models have been used in
  13890.  published technical papers to depict internationalization issues, the
  13891.  internationalization services described in this clause conform to the
  13892.  POSIX OSE Reference Model.
  13893.  
  13894.  
  13895.  5.1.4  Service Requirements
  13896.  
  13897.  The POSIX OSE should provide services on different levels:  general
  13898.  service requirements to be satisfied for any requesting program; API
  13899.  service requirements to be satisfied at the application program interface
  13900.  for a specific program; and a set of tools to support the localization of
  13901.  systems and applications.  This subclause (5.1.4) will discuss these
  13902.  different service requirements in detail.  In examining these service
  13903.  requirements, it is helpful to draw a distinction between those services
  13904.  which are required to support the portability of an application platform
  13905.  across cultural boundaries, and those services which are required to
  13906.  support the portability of an application across one or more sets of
  13907.  cultural conventions which may be supported on a single application
  13908.  platform.
  13909.  
  13910.  
  13911.  
  13912.  
  13913.  
  13914.  
  13915.  
  13916.  
  13917.               Copyright (c) 1991 IEEE.  All rights reserved.
  13918.       This is an unapproved IEEE Standards Draft, subject to change.
  13919.  
  13920.  
  13921.  
  13922.  
  13923.  5.1 Internationalization                                              191
  13924.  
  13925.  
  13926.  
  13927.  
  13928.  
  13929.  
  13930.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  13931.  
  13932.  5.1.4.1  General Service Requirements, Application Platform
  13933.  
  13934.  Internationalization requirements are focused on support and handling of:
  13935.  
  13936.      - Character sets and data representation
  13937.  
  13938.      - Cultural conventions
  13939.  
  13940.      - Natural language support
  13941.  
  13942.  5.1.4.1.1  Character Sets and Data Representation
  13943.  
  13944.  The character set for the English language can easily be satisfied by the
  13945.  standard ASCII character set (American Standard Code for Information
  13946.  Interchange).  The ASCII code uses 7 bits to uniquely identify each of
  13947.  the 95 available characters.  For European and American languages beside
  13948.  English, the number of local characters is much larger.  The far-east
  13949.  requirements for thousands of pictograms add yet another dimension to the
  13950.  coding rules and techniques.
  13951.  
  13952.  Different standards address the methods by which the local character
  13953.  repertoires can be coded for unique identification.  While replacement of
  13954.  seldom-used characters in the 7-bit codings can support a single
  13955.  additional language besides English, 8-bit coding schemes are used to
  13956.  satisfy multiple languages concurrently by assigning an additional 96
  13957.  graphic characters to the available repertoire.  An example is ISO 8859-1
  13958.  (the extended ASCII code), which can support all of western Europe,
  13959.  America, Australia, and other English speaking countries all over the
  13960.  world.  For Eastern Europe, Greece, Russia, Arabia, and many other
  13961.  countries, other 8-bit codes are defined.  Japan, China, Korea, and
  13962.  Taiwan have so many characters in their repertoire that 16 bits are
  13963.  needed to identify them clearly.  Work is under way to develop a multi-
  13964.  octet character set with up to 32 bits per coded character; this method
  13965.  will allow concurrent use of all possible languages in the same
  13966.  application.
  13967.  
  13968.  Because different coding schemes are used, it is important that the
  13969.  application platform have the potential capability of supporting all of
  13970.  them.  It is also important that the application platform has the
  13971.  capability to represent (display, print) the data correctly. It is also
  13972.  important that an application be able to determine in which coded
  13973.  character set data items are stored on disk or tape.  Otherwise, it is
  13974.  impossible for the application to interpret the data correctly.
  13975.  Currently the user must control the consistent use of the same coded
  13976.  character set within an application, but in the future the application
  13977.  platform should be able to provide identification methods for the coded
  13978.  character sets used for data storage, processing, communication, and
  13979.  presentation.  It might also be advantageous for the application to be
  13980.  able to prohibit users from updating data stored in one coded character
  13981.  
  13982.  
  13983.               Copyright (c) 1991 IEEE.  All rights reserved.
  13984.       This is an unapproved IEEE Standards Draft, subject to change.
  13985.  
  13986.  
  13987.  
  13988.  
  13989.  192                                   5 POSIX OSE Cross-Category Services
  13990.  
  13991.  
  13992.  
  13993.  
  13994.  
  13995.  
  13996.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  13997.  
  13998.  set with data in another coded character set since this would immediately
  13999.  corrupt data bases or flat files.  Therefore it may be necessary in the
  14000.  future to provide a method of announcing the coded character set in which
  14001.  data are stored, processed, communicated, and presented.
  14002.  
  14003.  The general service for support of character sets and data representation
  14004.  in an international environment are:
  14005.  
  14006.      (1)  Coded character set independence:  the ability of the
  14007.           application platform to input, store, manipulate, retrieve,
  14008.           communicate, and present data independent from the coding scheme
  14009.           used.  This includes 7-bit, 8-bit, 16-bit, and multi-octet coded
  14010.           character sets.
  14011.  
  14012.      (2)  Character set repository:  the ability of the application
  14013.           platform to maintain and access a central character set
  14014.           repository.  This repository contains all coded character sets
  14015.           used throughout the platform and specifies relevant information
  14016.           about them:
  14017.  
  14018.            - Code format:  the repository contains information, if
  14019.              characters are coded in 7 bits, 8 bits, 16 bits, or any other
  14020.              format.
  14021.  
  14022.            - Data class definition:  the definition that a character is
  14023.              considered numeric, alpha, etc., by the programming
  14024.              languages.  This classification can vary for the same
  14025.              character from country to country.
  14026.  
  14027.            - Collating rules:  different character sets have different
  14028.              coding for characters.  Thus, comparison of strings of such
  14029.              coded characters should follow rules defined for the specific
  14030.              character set.  Culturally dependent additional collating
  14031.              rules are discussed in 5.1.4.1.2.
  14032.  
  14033.            - Lower- to uppercase mapping:  this defines the rules of
  14034.              mapping, if for a specific character no upper- or lowercase
  14035.              is available.  Examples are the lower case umlauts which do
  14036.              not have uppercase representations in Switzerland; the
  14037.              uppercase forms are A, O, or U, respectively, followed by a
  14038.              lowercase ``e''.
  14039.  
  14040.            - Escapement rules:  some languages like Hebrew and Arabic are
  14041.              written from right to left; numbers within text in these
  14042.              languages are written from left to right.  It is necessary to
  14043.              store these escapement rules with the character set.
  14044.  
  14045.            - Presentation rules:  the application platform should have the
  14046.              ability of providing fallback presentation rules for the
  14047.  
  14048.  
  14049.               Copyright (c) 1991 IEEE.  All rights reserved.
  14050.       This is an unapproved IEEE Standards Draft, subject to change.
  14051.  
  14052.  
  14053.  
  14054.  
  14055.  5.1 Internationalization                                              193
  14056.  
  14057.  
  14058.  
  14059.  
  14060.  
  14061.  
  14062.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  14063.  
  14064.              presentation of coded characters that have no associated
  14065.              graphic shape.
  14066.  
  14067.      (3)  Character set identifier:  the application platform should
  14068.           provide the ability to uniquely identify each coded character
  14069.           set to allow compatibility checks and translation or
  14070.           transliteration to and from other registered character sets.
  14071.           This ensures data integrity in the communication of data across
  14072.           computers and networks.
  14073.  
  14074.      (4)  Character set selection:  the application platform should allow
  14075.           the end-user or the application to select the coded character
  14076.           set to be used; otherwise, the application should automatically
  14077.           select a default coded character set according to preset
  14078.           parameters.  It should be possible to switch to other coded
  14079.           character sets and to invoke translation routines where
  14080.           required.
  14081.  
  14082.      (5)  Data announcement:  the application platform could benefit from
  14083.           having the ability to recognize the coded character set of data
  14084.           entities (files, messages, etc.).  One way of doing this is to
  14085.           store the character set identifier together with the data;
  14086.           standardization efforts are under way to formalize this process,
  14087.           with consideration being given to the level of granularity of
  14088.           such identification (e.g. file, word, character).  The
  14089.           announcement enables the application to prohibit updates with
  14090.           data coded in other character sets, thus ensuring data integrity
  14091.           even in distributed systems.
  14092.  
  14093.      (6)  Data presentation:  the application platform should be able to
  14094.           present data on different display or output devices, potentially
  14095.           according to rules in a repository, including escapement of
  14096.           characters and selection of different shapes.  Preparing data
  14097.           for presentation may involve extensive translation and
  14098.           transliteration due to potential hardware limitations of the
  14099.           printers and displays used in a particular installation.
  14100.  
  14101.      (7)  Data communication:  the application platform should be able to
  14102.           transmit and receive data from communication systems and to
  14103.           maintain the integrity of the information.  In an
  14104.           internationalized environment, this capability might include
  14105.           data translation due to different coded character sets being
  14106.           used by different service categories of the application
  14107.           platform.
  14108.  
  14109.      (8)  Data input:  the ability to enter data is not necessarily
  14110.           controlled by the application platform.  The complexity of the
  14111.           input of Asian languages though might strongly support the idea
  14112.           of a standardized input mechanism interface.  Depending on how
  14113.  
  14114.  
  14115.               Copyright (c) 1991 IEEE.  All rights reserved.
  14116.       This is an unapproved IEEE Standards Draft, subject to change.
  14117.  
  14118.  
  14119.  
  14120.  
  14121.  194                                   5 POSIX OSE Cross-Category Services
  14122.  
  14123.  
  14124.  
  14125.  
  14126.  
  14127.  
  14128.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  14129.  
  14130.           other internationalization service requirements are met, it
  14131.           might also be beneficial for input data to carry some form of
  14132.           character set identification.
  14133.  
  14134.  5.1.4.1.2  Cultural Conventions
  14135.  
  14136.  Besides using different characters and different languages, countries
  14137.  throughout the world have also developed quite different cultural
  14138.  conventions.  Even within one country we can find significantly different
  14139.  cultural environments.  The prime example is Switzerland, where French,
  14140.  German, Italian, and Rhaeto Romanic are officially accepted languages.
  14141.  Combined with the language preferences are conventions about the formats
  14142.  of time, date, numeric values, and measuring systems.  Currency symbols,
  14143.  paper formats, hyphenation, and collating are dependent on cultural
  14144.  conventions.  End-user-oriented applications have to address these issues
  14145.  to provide a familiar local view, which helps to prevent operating
  14146.  errors.
  14147.  
  14148.  The general service requirements for cultural conventions are:
  14149.  
  14150.      (1)  Cultural convention repository:  The application platform should
  14151.           have the ability to store and access rules and conventions for
  14152.           cultural entities.  These might be areas with a common language,
  14153.           geographic areas, or areas with common cultural or historic
  14154.           background.  The repository should contain specifications and
  14155.           presentation rules for:
  14156.  
  14157.            - Date and time formats:  indicating the formats associated
  14158.              with the particular cultural entity.  For example, while in
  14159.              the US the date is expressed in the format month/day/year,
  14160.              the European preferred format is year-month-day for data
  14161.              processing purposes and day-month-year in personal use.
  14162.              Japan counts the years according to the reign of the current
  14163.              emperor.  Additionally, twenty-four-hour clocks, which are
  14164.              prevalent in Europe, are commonly used only in military
  14165.              circles in the US, while the terms ``am'' and ``pm'',
  14166.              denoting morning and afternoon, are used by the general
  14167.              public. These are only a few examples for the cultural
  14168.              differences in this area.  The application platform should be
  14169.              able to store the preferred forms for date and time for a
  14170.              specific cultural entity and make it available upon request
  14171.              in this format.
  14172.  
  14173.            - Week and day numbering:  in Europe, the week starts on
  14174.              Monday, in the US on Sunday.  The application platform should
  14175.              be able to supply the requesting program with the needed
  14176.              information, potentially from a repository according to
  14177.              specified rules.
  14178.  
  14179.  
  14180.  
  14181.               Copyright (c) 1991 IEEE.  All rights reserved.
  14182.       This is an unapproved IEEE Standards Draft, subject to change.
  14183.  
  14184.  
  14185.  
  14186.  
  14187.  5.1 Internationalization                                              195
  14188.  
  14189.  
  14190.  
  14191.  
  14192.  
  14193.  
  14194.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  14195.  
  14196.            - Formats of numeric fields:  handling of numeric fields in
  14197.              unfamiliar formats is one of the major reasons for human
  14198.              errors.  The application platform should provide the service
  14199.              to format the values according to specifications in the
  14200.              repository.  The characters that signify the decimal point
  14201.              (comma, period, etc.) should be defined, as well as the
  14202.              number of decimals, the grouping of digits before the decimal
  14203.              point and the presentation of negative values.
  14204.  
  14205.            - Currency symbols and field length:  the handling of currency
  14206.              symbols in the different cultural areas should be provided by
  14207.              the general internationalization services.  The currency
  14208.              symbols might be more than one digit long and can appear
  14209.              before or after the currency field.  The format of currency
  14210.              fields might differ from that of numeric fields; for example,
  14211.              in Portugal the $-sign is used as the decimal point.
  14212.              Information about these conventions should be stored in the
  14213.              repository and be used by the application platform for local
  14214.              formatting of currency fields.  Not necessarily a service,
  14215.              but similarly important, is the understanding, that due to
  14216.              the value of different currencies, the field lengths should
  14217.              be considered carefully.  Also some currencies do not have
  14218.              decimals (e.g., Italian Lira).
  14219.  
  14220.            - Paper formats:  internationally usable and portable
  14221.              applications should be able to print on different paper
  14222.              formats.  While quart format is predominant in the US and the
  14223.              far east, the DIN standardized A-formats are used in Europe.
  14224.              Printer drivers should be able to adjust their output to
  14225.              local formats, defined in the cultural convention repository.
  14226.  
  14227.      (2)  Cultural repository selection:  these repositories should be
  14228.           available to all applications.  Users and applications should be
  14229.           able to select a repository from the application platform; a
  14230.           default value should be provided if no selection is made.  An
  14231.           additional service allows dynamic switching to other
  14232.           repositories upon user or program requests.
  14233.  
  14234.      (3)  Collating rules:  besides the generic binary and character-set-
  14235.           dependent sorting rules, the application platform should have
  14236.           the ability to sort data according to local rules, defined in
  14237.           the repository.  An example for culture-dependent collating
  14238.           rules is the handling of umlauts; while they are sorted with the
  14239.           base characters in Austria, they are sorted at the end of the
  14240.           alphabet in Sweden.  Adding complexity, they can be sorted
  14241.           differently within one country between normal business use, such
  14242.           as dictionaries, and in telephone books.  Other idiosyncrasies
  14243.           are the sorting of one character as two (the German ``sharp-s''
  14244.           sorts as ``sz'' in Austria and ``ss'' in Germany), or two
  14245.  
  14246.  
  14247.               Copyright (c) 1991 IEEE.  All rights reserved.
  14248.       This is an unapproved IEEE Standards Draft, subject to change.
  14249.  
  14250.  
  14251.  
  14252.  
  14253.  196                                   5 POSIX OSE Cross-Category Services
  14254.  
  14255.  
  14256.  
  14257.  
  14258.  
  14259.  
  14260.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  14261.  
  14262.           characters as one (the Spanish ``ch'' sorts as one character),
  14263.           or the position of accented characters in a string, and more.
  14264.           User-defined collating tables in the cultural convention
  14265.           repository allow culture or application-dependent sorting
  14266.           services.
  14267.  
  14268.  5.1.4.1.3  Natural Language Support
  14269.  
  14270.  The POSIX OSE should give users the ability to select a natural language
  14271.  for their dialogue with the system and applications.  While it is
  14272.  unrealistic to expect all application platforms to support all possible
  14273.  natural languages, error messages, online documentation and help
  14274.  facilities, selection menus, and the relevant user interaction with these
  14275.  services should be prepared for translation into the supported user-
  14276.  selectable natural language.  Additionally, the POSIX OSE should support
  14277.  differences between the natural language selected by the user for
  14278.  interaction with the application platform and that selected for use
  14279.  within a particular application. For word- and text-processing, the
  14280.  service includes hyphenation and spell checking with possible thesaurus
  14281.  support in different languages.  The problem is complicated by the fact
  14282.  that data can contain text in different languages in the same document.
  14283.  
  14284.  The service requirements for natural language support are:
  14285.  
  14286.      (1)  Multilingual capability:  the application platform should be
  14287.           able to support more than one language simultaneously.  For
  14288.           example, one process might be providing French language
  14289.           capabilities while another process operated in Japanese. The
  14290.           application platform should be able to let users select their
  14291.           preferred languages for communication with the application and
  14292.           allow them to switch dynamically to another language.  The
  14293.           application platform also should have the capability to assign a
  14294.           default language, based on parameters for the application
  14295.           platform, the specific workstation, the user identification, or
  14296.           the application.
  14297.  
  14298.      (2)  Natural language message system:  the application platform
  14299.           should have the capability to present (display, print, ...)
  14300.           messages, menus, forms, and online documentation in the
  14301.           language, selected by the user.  The application platform should
  14302.           be able to support multiple languages simultaneously for
  14303.           different users and it should allow the user to switch from one
  14304.           language to another.  The following problems also should be
  14305.           handled correctly:
  14306.  
  14307.            - The program code of the application should be able to be
  14308.              independent from any particular natural language, presenting
  14309.              messages in the natural language used within the
  14310.              internationalized user environment selected by the user.
  14311.  
  14312.  
  14313.               Copyright (c) 1991 IEEE.  All rights reserved.
  14314.       This is an unapproved IEEE Standards Draft, subject to change.
  14315.  
  14316.  
  14317.  
  14318.  
  14319.  5.1 Internationalization                                              197
  14320.  
  14321.  
  14322.  
  14323.  
  14324.  
  14325.  
  14326.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  14327.  
  14328.            - Variable message length:  the application platform should
  14329.              support the presentation of messages of variable length, as
  14330.              translation into other languages changes the length of the
  14331.              message; English text is usually quite short compared to the
  14332.              same text in, e.g., German or Finnish.  Ample room should be
  14333.              available in the display field to accommodate this variation.
  14334.  
  14335.            - Inserted parameters and word order:  the application platform
  14336.              should have the capability of inserting variable parameters
  14337.              into messages at the location appropriate for the user
  14338.              selected natural language.
  14339.  
  14340.      (3)  Support of local keyboards:  the application platform should be
  14341.           able to correctly interpret the input from keyboards that have
  14342.           been modified locally to support the local character sets.
  14343.  
  14344.      (4)  Local language user interaction:  the application should be able
  14345.           to accept solicited input from the user in the language selected
  14346.           by the user, without dependence within the application logic on
  14347.           a particular natural language or set of cultural conventions.
  14348.           For example, many applications use the first characters of
  14349.           prompts to make selections; this method is not acceptable in an
  14350.           internationalized system.  The translation process changes the
  14351.           prompts and with them their first character; more than one
  14352.           prompt could have the same start-character and the program logic
  14353.           would not work.  Multiple languages should be supported
  14354.           simultaneously.
  14355.  
  14356.  5.1.4.2  API Service Requirements
  14357.  
  14358.  All the general services defined in 5.1.4.1 should be accessible from the
  14359.  applications through requests to the application program interface.  The
  14360.  API service requirements can be structured in the same way as the general
  14361.  requirements, which they call for.
  14362.  
  14363.  5.1.4.2.1  Cultural Conventions
  14364.  
  14365.      - Cultural convention invocation:  the application platform should
  14366.        allow the application to invoke a specific cultural convention from
  14367.        the repository.  It should automatically invoke the default
  14368.        convention set, if no selection is made by the application.
  14369.  
  14370.      - Cultural convention change:  when requested by the application or
  14371.        the user, the application platform should change the used cultural
  14372.        convention dynamically.
  14373.  
  14374.      - Provide local values:  upon request from the application, the
  14375.        application platform should return local formats for time, date,
  14376.        calendar, numeric fields, currency fields and symbols.
  14377.  
  14378.  
  14379.               Copyright (c) 1991 IEEE.  All rights reserved.
  14380.       This is an unapproved IEEE Standards Draft, subject to change.
  14381.  
  14382.  
  14383.  
  14384.  
  14385.  198                                   5 POSIX OSE Cross-Category Services
  14386.  
  14387.  
  14388.  
  14389.  
  14390.  
  14391.  
  14392.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  14393.  
  14394.      - Local sort and comparison:  when requested by the application, the
  14395.        application platform should compare and sort data according to the
  14396.        local collating rules defined in the cultural convention
  14397.        repository.
  14398.  
  14399.  5.1.4.2.2  Natural Language Support
  14400.  
  14401.      - Language selection:  the application platform should present
  14402.        messages, menus, forms, online documentation, and user interaction
  14403.        in the natural language selected by the user or automatically by
  14404.        the system based on preset parameters for the application, the
  14405.        session, the user, or the system.
  14406.  
  14407.      - Change of language:  upon request from the user, the application
  14408.        platform should be able to dynamically change, prior to the
  14409.        invocation of a particular user application, the language used for
  14410.        messages, menus, forms, online documentation, and user
  14411.        interactions.
  14412.  
  14413.  5.1.4.3  Localization Tools Requirements
  14414.  
  14415.  Internationalization of application platforms and applications is the
  14416.  basis for their localization in the different countries.  It is important
  14417.  for the user that this localization can be performed in a well prepared,
  14418.  organized way without the need to know the internal structure of the
  14419.  application platform or the application.  The following requirements for
  14420.  localization tools are key to successful localization of application
  14421.  platforms and applications:
  14422.  
  14423.      - Character set repository tools:  tools should be provided to set up
  14424.        and maintain character set repositories.  They also should allow
  14425.        the addition of new character sets to the repository.
  14426.  
  14427.      - Cultural convention repository tools:  tools should be provided to
  14428.        set up and maintain the cultural convention repositories.  Addition
  14429.        of new cultural environments should be possible.  User-definable
  14430.        collation tables are essential parts of these repositories; tools
  14431.        to define and maintain them should be offered.
  14432.  
  14433.      - Translation support tools:  facilities for the set-up and
  14434.        maintenance of local language message files, menus, forms, online
  14435.        documentation, and user interaction tables should be provided.  The
  14436.        addition of new supported languages should be allowed by such
  14437.        tools.  Additionally, any such translation tools should allow
  14438.        revision control, so that only new or changed text would require
  14439.        translation for new software releases.
  14440.  
  14441.                                                                             e
  14442.  
  14443.  
  14444.  
  14445.               Copyright (c) 1991 IEEE.  All rights reserved.
  14446.       This is an unapproved IEEE Standards Draft, subject to change.
  14447.  
  14448.  
  14449.  
  14450.  
  14451.  5.1 Internationalization                                              199
  14452.  
  14453.  
  14454.  
  14455.  
  14456.  
  14457.  
  14458.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  14459.  
  14460.  5.1.5  Standards, Specifications, and Gaps
  14461.  
  14462.  There are not many standards available that deal with
  14463.  internationalization.  The majority of current standards describe
  14464.  character sets, both for control characters and for graphic characters in
  14465.  different coding schemes (7-bit, 8-bit, etc.).  A few standards address
  14466.  the formats of time and date, and some standards touch peripherally on
  14467.  the subject of data announcement.
  14468.  
  14469.  An example of how cultural conventions and languages are currently
  14470.  supported is the _l_o_c_a_l_e() function.  It allows the application developer
  14471.  to select portions or all of predefined support features for national
  14472.  languages and local cultural conventions.  The portions, called
  14473.  categories, correspond to the areas of functionality; presently supported
  14474.  are character classification, collation sequence, date/time format,        e
  14475.  monetary format, and numeric format.  Other categories, such as message    e
  14476.  handling, are likely to be implemented, too.  Other systems have started
  14477.  to implement similar philosophies of general services to support local
  14478.  cultural conventions.
  14479.  
  14480.  5.1.5.1  Current Standards
  14481.  
  14482.  5.1.5.1.1  International Standards
  14483.  
  14484.      - ISO 646: 1983, _I_S_O _7-_B_i_t _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t _f_o_r _I_n_f_o_r_m_a_t_i_o_n
  14485.        _I_n_t_e_r_c_h_a_n_g_e
  14486.  
  14487.        Defines the binary representation of 128 control, (Latin) alphabet,
  14488.        digit, and symbol characters.  Describes in general the use of the
  14489.        control characters.  Describes option of national replacement
  14490.        characters.
  14491.  
  14492.      - ISO 2014: 1976, _W_r_i_t_i_n_g _o_f _C_a_l_e_n_d_a_r _D_a_t_e_s _i_n _A_l_l-_n_u_m_e_r_i_c _F_o_r_m
  14493.  
  14494.        This international standard specifies the writing of dates of the
  14495.        Gregorian calendar in all-numeric form, signified by the elements
  14496.        year, month, and day.
  14497.  
  14498.      - ISO 2022: 1986, _I_S_O _7-_B_i_t _a_n_d _8-_B_i_t _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s--_C_o_d_e
  14499.        _E_x_t_e_n_s_i_o_n _T_e_c_h_n_i_q_u_e_s
  14500.  
  14501.        Defines techniques for expanding the number of characters
  14502.        represented by the base character set.
  14503.  
  14504.      - ISO 3307: 1975, _R_e_p_r_e_s_e_n_t_a_t_i_o_n _o_f _T_i_m_e _o_f _t_h_e _D_a_y
  14505.  
  14506.        This international standard is designed to establish uniform time
  14507.        representation based upon the 24-hour timekeeping system.  It
  14508.        provides a means for representing local time of the day and
  14509.  
  14510.  
  14511.               Copyright (c) 1991 IEEE.  All rights reserved.
  14512.       This is an unapproved IEEE Standards Draft, subject to change.
  14513.  
  14514.  
  14515.  
  14516.  
  14517.  200                                   5 POSIX OSE Cross-Category Services
  14518.  
  14519.  
  14520.  
  14521.  
  14522.  
  14523.  
  14524.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  14525.  
  14526.  
  14527.                Table 5-1  -  Internationalization Standards                 e
  14528.  __________________________________________________________________________________________________________________________________________________  e
  14529.               Service                Type      Specification       Subclausee
  14530.  ___________________________________________________________________________e
  14531.  
  14532.  Character set/data representation    S     ISO 646, ISO 2022,    e5.1.5.1  ee       ee
  14533.                                             ISO 4031, ISO 4217,   e         e
  14534.                                             ISO 4873, ISO 6093,   e         e
  14535.                                             ISO 6429, ISO 6936,   e         e
  14536.                                             ISO 6937-1,           e         e
  14537.                                             ISO 6937-2,           e         e
  14538.                                             ISO 7350, ISO 8601,   e         e
  14539.                                             ISO 8859-_n (1-9),     e         e
  14540.                                             CCITT T.61, GB 2312,  e         e
  14541.                                             JIS X 0208,           e         e
  14542.                                             KS C 5601             e         e
  14543.  
  14544.  Character set/data representation    E     ISO DIS 10367,        e5.1.5.2  ee       ee
  14545.                                             ISO DIS 10646         e         e
  14546.  
  14547.  Cultural convention                  S     ISO 2014, ISO 3307    e5.1.5.1  ee       ee
  14548.  
  14549.  Natural language support             E     ISO/IEC 9995-x,       e5.1.5.2  ee       ee
  14550.                                             CSA-Z243.200-88       e         e
  14551.  __________________________________________________________________________________________________________________________________________________  e
  14552.  
  14553.  
  14554.        Universal Time in digital form for the purpose of interchanging
  14555.        information among data systems.
  14556.  
  14557.      - ISO 4031: 1987, _R_e_p_r_e_s_e_n_t_a_t_i_o_n _o_f _L_o_c_a_l _T_i_m_e _D_i_f_f_e_r_e_n_t_i_a_l_s
  14558.  
  14559.        This international standard specifies a standard means for
  14560.        representing local time differentials to facilitate interchange of
  14561.        data among data systems.
  14562.  
  14563.      - ISO 4217: 1987, _C_o_d_e_s _f_o_r _t_h_e _R_e_p_r_e_s_e_n_t_a_t_i_o_n _o_f _C_u_r_r_e_n_c_i_e_s _a_n_d
  14564.        _F_u_n_d_s
  14565.  
  14566.        Specifies the representation of currencies and currency symbols
  14567.  
  14568.      - ISO 4873: 1986, _I_S_O _8-_B_i_t _C_o_d_e _f_o_r _I_n_f_o_r_m_a_t_i_o_n _I_n_t_e_r_c_h_a_n_g_e--
  14569.        _S_t_r_u_c_t_u_r_e _a_n_d _R_u_l_e_s _f_o_r _I_m_p_l_e_m_e_n_t_a_t_i_o_n
  14570.  
  14571.        Outlines the structure of the ISO 8-bit code and rules for
  14572.        implementation.
  14573.  
  14574.  
  14575.  
  14576.  
  14577.               Copyright (c) 1991 IEEE.  All rights reserved.
  14578.       This is an unapproved IEEE Standards Draft, subject to change.
  14579.  
  14580.  
  14581.  
  14582.  
  14583.  5.1 Internationalization                                              201
  14584.  
  14585.  
  14586.  
  14587.  
  14588.  
  14589.  
  14590.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  14591.  
  14592.      - ISO 6093: 1985, _P_r_e_s_e_n_t_a_t_i_o_n _o_f _N_u_m_e_r_i_c_a_l _V_a_l_u_e_s _i_n _C_h_a_r_a_c_t_e_r
  14593.        _S_t_r_i_n_g_s _f_o_r _I_n_f_o_r_m_a_t_i_o_n _I_n_t_e_r_c_h_a_n_g_e
  14594.  
  14595.        Specifies three presentations of numerical values, which are
  14596.        represented in character strings in a form readable by machine, for
  14597.        use in interchange between data processing systems.  Also provides
  14598.        guidance for developers of programming languages standards and
  14599.        Implementor's of programming products.  These representations are
  14600.        recognizable by humans, and thus may be useful in communication
  14601.        between humans.
  14602.  
  14603.      - ISO 6429: 1988, _I_S_O _7-_B_i_t _a_n_d _8-_B_i_t _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s--_C_o_n_t_r_o_l
  14604.        _F_u_n_c_t_i_o_n_s _f_o_r _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s
  14605.  
  14606.        Defines control functions and their coded representations for use
  14607.        in a 7-bit code, an extended 7-bit code, an 8-bit code, or an
  14608.        extended 8-bit code.  Specifies a C0 set, a C1 set, control
  14609.        functions derived there from, and a number of independent control
  14610.        functions.
  14611.  
  14612.      - ISO 6936: 1988, _C_o_n_v_e_r_s_i_o_n _b_e_t_w_e_e_n _t_h_e _T_w_o _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s _o_f
  14613.        _I_S_O _6_4_6 _a_n_d _I_S_O _6_9_3_7-_2 _a_n_d _t_h_e _C_C_I_T_T _I_n_t_e_r_n_a_t_i_o_n_a_l _T_e_l_e_g_r_a_p_h
  14614.        _A_l_p_h_a_b_e_t _N_o.  (_I_T_A) _2
  14615.  
  14616.        Specifies the rules for conversion between ITA 2 representation of
  14617.        58 characters and the ISO 646 representation of 128 characters.
  14618.  
  14619.      - ISO 6937-1: 1983, _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s _f_o_r _T_e_x_t _C_o_m_m_u_n_i_c_a_t_i_o_n--_P_a_r_t
  14620.        _1:  _G_e_n_e_r_a_l _I_n_t_r_o_d_u_c_t_i_o_n
  14621.  
  14622.        Defines terms and concepts used in describing and using code
  14623.        representations of character sets.
  14624.  
  14625.      - ISO 6937-2: 1983, _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s _f_o_r _T_e_x_t _C_o_m_m_u_n_i_c_a_t_i_o_n--_P_a_r_t
  14626.        _2:  _L_a_t_i_n _A_l_p_h_a_b_e_t_i_c _a_n_d _N_o_n-_a_l_p_h_a_b_e_t_i_c _G_r_a_p_h_i_c _C_h_a_r_a_c_t_e_r_s
  14627.  
  14628.        Defines a repertoire of Latin alphabetic and non-alphabetic
  14629.        characters.  Specifies binary representation of the characters.
  14630.        Specifies rules for the definition and use of character sets that
  14631.        are subsets of the repertoire.
  14632.  
  14633.      - ISO 7350: 1984, _R_e_g_i_s_t_r_a_t_i_o_n _o_f _G_r_a_p_h_i_c _C_h_a_r_a_c_t_e_r _S_u_b_r_e_p_e_r_t_o_i_r_e_s
  14634.  
  14635.        Specifies the procedures for preparing, registering, publishing,
  14636.        and maintaining the register of graphic character sets that are
  14637.        composed from the character repertoire of ISO 6937 and the
  14638.        procedures for assigning identifiers to the sets.
  14639.  
  14640.  
  14641.  
  14642.  
  14643.               Copyright (c) 1991 IEEE.  All rights reserved.
  14644.       This is an unapproved IEEE Standards Draft, subject to change.
  14645.  
  14646.  
  14647.  
  14648.  
  14649.  202                                   5 POSIX OSE Cross-Category Services
  14650.  
  14651.  
  14652.  
  14653.  
  14654.  
  14655.  
  14656.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  14657.  
  14658.      - ISO 8601: 1988, _R_e_p_r_e_s_e_n_t_a_t_i_o_n _o_f _D_a_t_e_s _a_n_d _T_i_m_e_s
  14659.  
  14660.        Specifies the representation of dates A.D.  in the Gregorian
  14661.        calendar and times and representation of periods of times.
  14662.        Applicable whenever dates and times are included in information
  14663.        interchange.
  14664.  
  14665.      - ISO 8859-x: 1987, _8-_B_i_t _S_i_n_g_l_e-_B_y_t_e _C_o_d_e_d _G_r_a_p_h_i_c _C_h_a_r_a_c_t_e_r _S_e_t_s
  14666.  
  14667.        Specifies a set of up to 191 graphic characters by means of a
  14668.        single 8- bit byte.  The versions (``-x'') indicate different coded
  14669.        character sets:
  14670.  
  14671.           -1 Latin Alphabet No.  1
  14672.  
  14673.           -2 Latin Alphabet No.  2
  14674.  
  14675.           -3 Latin Alphabet No.  3
  14676.  
  14677.           -4 Latin Alphabet No.  4
  14678.  
  14679.           -5 Latin/Cyrillic Alphabet
  14680.  
  14681.           -6 Latin/Arabic Alphabet
  14682.  
  14683.           -7 Latin Greek Alphabet
  14684.  
  14685.           -8 Latin/Hebrew Alphabet
  14686.  
  14687.           -9 Latin Alphabet No.  5                                          e
  14688.  
  14689.      - CCITT T.61, 1985:  _C_h_a_r_a_c_t_e_r _R_e_p_e_r_t_o_i_r_e _a_n_d _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s
  14690.        _f_o_r _t_h_e _I_n_t_e_r_n_a_t_i_o_n_a_l _T_e_l_e_t_e_x _S_e_r_v_i_c_e
  14691.  
  14692.        Describes detailed definitions of the repertoires of graphic
  14693.        characters and control functions to be used in the international
  14694.        Teletex service.  The means by which supplementary character
  14695.        repertoires are defined are also described.
  14696.  
  14697.  5.1.5.1.2  Regional Standards
  14698.  
  14699.  Presently, no regional internationalization standards which relate to the
  14700.  scope of this guide have been adopted.
  14701.  
  14702.  
  14703.  
  14704.  
  14705.  
  14706.  
  14707.  
  14708.  
  14709.               Copyright (c) 1991 IEEE.  All rights reserved.
  14710.       This is an unapproved IEEE Standards Draft, subject to change.
  14711.  
  14712.  
  14713.  
  14714.  
  14715.  5.1 Internationalization                                              203
  14716.  
  14717.  
  14718.  
  14719.  
  14720.  
  14721.  
  14722.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  14723.  
  14724.  5.1.5.1.3  National Standards
  14725.  
  14726.  Many of the international ISO standards have ``twins'' in the national
  14727.  standards bodies; i.e., the same text is given a local standard
  14728.  identification.  Also, national standards bodies have often developed
  14729.  standards for local representation of time, date, and currency.  The
  14730.  implementation of these standards into an internationalized system is a
  14731.  prime example of localization.
  14732.  
  14733.  Here are some standards that have no international equivalent:
  14734.  
  14735.      - GB 2312: 1980, Chinese national character set standard
  14736.  
  14737.      - JIS X 0208: 1983, Japanese national character set standard
  14738.  
  14739.      - KS C 5601: 1987, Korean national character set standard
  14740.  
  14741.  5.1.5.2  Emerging Standards
  14742.  
  14743.  5.1.5.2.1  International Standards
  14744.  
  14745.  The rapid development of business opportunities in the Pan-European and
  14746.  the Asian market has spawned a wealth of activities to develop standards
  14747.  for the support of internationalization in the field of information
  14748.  technology.  These emerging standards deal with character sets, language
  14749.  neutral user interfaces, and communication.
  14750.  
  14751.      - ISO DIS 10646:  _M_u_l_t_i_p_l_e _O_c_t_e_t _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t
  14752.  
  14753.        This standard will permit the presentation of all of the world's
  14754.        scripts in computer based systems, and their unambiguous
  14755.        interchange between one system or person and another.  It is
  14756.        applicable to the representation, processing, storage and
  14757.        presentation of the written form of the languages of the world.
  14758.  
  14759.      - ISO/IEC DIS 10367:  _R_e_p_e_r_t_o_i_r_e _o_f _S_t_a_n_d_a_r_d_i_z_e_d _C_o_d_e_d _G_r_a_p_h_i_c
  14760.        _C_h_a_r_a_c_t_e_r _S_e_t_s _f_o_r _U_s_e _i_n _8-_B_i_t _C_o_d_e_s
  14761.  
  14762.        This standard specifies a unique graphic character set for use as
  14763.        G0 set and a series of coded graphic character sets of up to 96
  14764.        characters for use as the G1, G2, and G3 sets in versions of ISO
  14765.        4873.  All sets specified in this standard are shown as elements of
  14766.        an 8-bit code.
  14767.  
  14768.      - ISO/IEC CD 9995-x:  _I_n_f_o_r_m_a_t_i_o_n _T_e_c_h_n_o_l_o_g_y--_K_e_y_b_o_a_r_d _L_a_y_o_u_t_s _f_o_r
  14769.        _T_e_x_t _a_n_d _O_f_f_i_c_e _S_y_s_t_e_m_s
  14770.  
  14771.        This family of standards defines the layout of keyboards so that
  14772.        they can be used for input of multilingual information.
  14773.  
  14774.  
  14775.               Copyright (c) 1991 IEEE.  All rights reserved.
  14776.       This is an unapproved IEEE Standards Draft, subject to change.
  14777.  
  14778.  
  14779.  
  14780.  
  14781.  204                                   5 POSIX OSE Cross-Category Services
  14782.  
  14783.  
  14784.  
  14785.  
  14786.  
  14787.  
  14788.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  14789.  
  14790.  5.1.5.2.2  Regional Standards
  14791.  
  14792.  The European Community is in the process to define European standards,
  14793.  called EN (Europaeische Norm).  No internationalization standards have
  14794.  yet been adopted.
  14795.  
  14796.  5.1.5.2.3  National Standards
  14797.  
  14798.  National standards under development which relate to internationalization
  14799.  include:
  14800.  
  14801.      - CSA-Z243.200-88:  _C_a_n_a_d_i_a_n _N_a_t_i_o_n_a_l _K_e_y_b_o_a_r_d _S_t_a_n_d_a_r_d _f_o_r _t_h_e
  14802.        _E_n_g_l_i_s_h _a_n_d _F_r_e_n_c_h _L_a_n_g_u_a_g_e_s _i_n _T_e_x_t _a_n_d _O_f_f_i_c_e _S_y_s_t_e_m_s
  14803.  
  14804.  5.1.5.3  Gaps in Available Standards
  14805.  
  14806.  5.1.5.3.1  Public Specifications
  14807.  
  14808.  The PC character set was defined at a time, when the international
  14809.  standards for single-byte, 8-bit character sets were not available yet.
  14810.  Therefore, the PC character set was accepted and still is a de facto
  14811.  standard in the PC world.  The concept of different code pages has been
  14812.  implemented in MS-DOS and WINDOWS-3 is using ISO 8859-1 internally for
  14813.  compatibility reasons with other systems.  Some companies have gone
  14814.  similar routes and developed their own, multilingual character sets for
  14815.  specific applications, the general trend is clearly towards ISO standards
  14816.  wherever they exist.
  14817.  
  14818.  A consortium of software and hardware companies is developing
  14819.  ``Unicode,'' a 16-bit character set standard for broad international use.  e
  14820.  
  14821.  5.1.5.3.2  Unsatisfied Service Requirements                                e
  14822.  
  14823.  While the character set arena is heavily populated, very little work is
  14824.  done in other areas of internationalization of products.  Standards
  14825.  should be developed for:
  14826.  
  14827.      - Cultural conventions repository
  14828.  
  14829.      - Application program interface services for cultural conventions
  14830.  
  14831.      - Application program interface services for character set handling
  14832.  
  14833.      - Multilingual collating rules
  14834.  
  14835.      - Input methods interface for Asian languages
  14836.  
  14837.      - Standards for message delivery systems
  14838.  
  14839.  
  14840.  
  14841.               Copyright (c) 1991 IEEE.  All rights reserved.
  14842.       This is an unapproved IEEE Standards Draft, subject to change.
  14843.  
  14844.  
  14845.  
  14846.  
  14847.  5.1 Internationalization                                              205
  14848.  
  14849.  
  14850.  
  14851.  
  14852.  
  14853.  
  14854.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  14855.  
  14856.      - Data announcement standards
  14857.  
  14858.  Additionally, no standards currently exist that support the following
  14859.  character set and data representation functionality:
  14860.  
  14861.      (1)  Character set invocation:  the application platform should allow
  14862.           the application to invoke a specific character set from the
  14863.           character set repository.  It should automatically invoke the
  14864.           default character set, if no selection is made by the
  14865.           application.
  14866.  
  14867.      (2)  Character set changes:  When requested by the application, the
  14868.           character set should be changed dynamically.
  14869.  
  14870.      (3)  Character set identifier:  the application program should be
  14871.           able to write the character set identifier to data and should be
  14872.           able to retrieve the identifier for requested data.
  14873.  
  14874.      (4)  Character set identifier comparison:  the application platform
  14875.           should, upon request from the application or automatically,
  14876.           compare the character set identifiers of interacting data in the
  14877.           application (input, processing, data storage, communication, and
  14878.           output).
  14879.  
  14880.      (5)  Character set translation:  the application platform should
  14881.           provide translation of character sets, when requested by the
  14882.           application or automatically, when detecting a mismatch in the
  14883.           comparison process.
  14884.  
  14885.  
  14886.  5.1.6  OSE Cross-Category Services
  14887.  
  14888.  Not applicable.
  14889.  
  14890.  
  14891.  5.1.7  Related Standards
  14892.  
  14893.  The nature of internationalization as being a cross-component facility is
  14894.  that it affects just about every element in the information processing
  14895.  world.  Thus, almost all standards in this environment are related to the
  14896.  subject.  Here we will point out a few major families of standards,
  14897.  strongly related to internationalization.
  14898.  
  14899.      - ISO DIS 8613:  Office Document Architecture and Interchange Format
  14900.        (ODA)
  14901.  
  14902.        This family of standards, ODA/ODIF, consist of:
  14903.  
  14904.  
  14905.  
  14906.  
  14907.               Copyright (c) 1991 IEEE.  All rights reserved.
  14908.       This is an unapproved IEEE Standards Draft, subject to change.
  14909.  
  14910.  
  14911.  
  14912.  
  14913.  206                                   5 POSIX OSE Cross-Category Services
  14914.  
  14915.  
  14916.  
  14917.  
  14918.  
  14919.  
  14920.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  14921.  
  14922.           1.2   Introduction and General Principles
  14923.  
  14924.           2.2   Document Structures
  14925.  
  14926.           3     Document Processing Reference Model
  14927.  
  14928.           4.2   Document Profile
  14929.  
  14930.           5.2   Office Document Interchange Format
  14931.  
  14932.           6.2   Character Content Architectures
  14933.  
  14934.           7     Raster Graphics Content Architectures
  14935.  
  14936.           8     Geometric Graphics Content Architectures
  14937.  
  14938.      - ISO 8824: 1987, _S_p_e_c_i_f_i_c_a_t_i_o_n _o_f _A_b_s_t_r_a_c_t _S_y_n_t_a_x _N_o_t_a_t_i_o_n _O_n_e _A_S_N._1
  14939.  
  14940.        Specifies a notation for the definition of abstract syntaxes,
  14941.        enabling Application Layer standards to define the types of
  14942.        information they need to transfer using the Presentation service.
  14943.        It also specifies a notation for the specification of values of a
  14944.        defined type.
  14945.  
  14946.      - ISO 8825: 1987, _S_p_e_c_i_f_i_c_a_t_i_o_n _o_f _B_a_s_i_c _E_n_c_o_d_i_n_g _R_u_l_e_s _f_o_r _A_b_s_t_r_a_c_t
  14947.        _S_y_n_t_a_x _N_o_t_a_t_i_o_n _O_n_e (_A_S_N._1)
  14948.  
  14949.        Defines a set of encoding rules that can be applied to values of
  14950.        types defined using the notation specified in ASN.1.  Application
  14951.        of these encoding rules produce a transfer syntax for such values.
  14952.        It is implicit in the specification of these encoding rules that
  14953.        they are also be used for decoding.
  14954.  
  14955.      - All programming language standards, since programming languages
  14956.        have to support internationalization, and have to work correctly in
  14957.        localized environments.  Their generated code itself has to work
  14958.        ``localized.''
  14959.  
  14960.                                                                             e
  14961.  
  14962.  
  14963.  
  14964.  
  14965.  
  14966.  
  14967.  
  14968.  
  14969.  
  14970.  
  14971.  
  14972.  
  14973.               Copyright (c) 1991 IEEE.  All rights reserved.
  14974.       This is an unapproved IEEE Standards Draft, subject to change.
  14975.  
  14976.  
  14977.  
  14978.  
  14979.  5.1 Internationalization                                              207
  14980.  
  14981.  
  14982.  
  14983.  
  14984.  
  14985.  
  14986.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  14987.  
  14988.  
  14989.  
  14990.  
  14991.  
  14992.  
  14993.  
  14994.  
  14995.  
  14996.  
  14997.  
  14998.  
  14999.  
  15000.  
  15001.  
  15002.  
  15003.  
  15004.  
  15005.  
  15006.  
  15007.  
  15008.  
  15009.  
  15010.  
  15011.  
  15012.  
  15013.  
  15014.  
  15015.  
  15016.  
  15017.  
  15018.  
  15019.  
  15020.  
  15021.  
  15022.  
  15023.  
  15024.  
  15025.  
  15026.  
  15027.  
  15028.  
  15029.  
  15030.  
  15031.  
  15032.  
  15033.  
  15034.  
  15035.  
  15036.  
  15037.  
  15038.  
  15039.               Copyright (c) 1991 IEEE.  All rights reserved.
  15040.       This is an unapproved IEEE Standards Draft, subject to change.
  15041.  
  15042.  
  15043.  
  15044.  
  15045.  208                                   5 POSIX OSE Cross-Category Services
  15046.  
  15047.  
  15048.  
  15049.  
  15050.  
  15051.  
  15052.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  15053.  
  15054.  5.2  System Security Services
  15055.  
  15056.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _M_i_c_h_e_l_l_e _A_d_e_n
  15057.  
  15058.  
  15059.  5.2.1  Overview and Rationale
  15060.  
  15061.  Information is the key to successful use of a system.  For example, if
  15062.  used effectively and efficiently, information may be used to underpin
  15063.  enhanced service and to aid the derivation of strategic plans.  Much of
  15064.  this information, for example, personal customer details and business
  15065.  financial plans, will be of a sensitive nature.
  15066.  
  15067.  Although authorized users may be able to take advantage of the POSIX Open
  15068.  System Environment (OSE) to increase productivity and efficiency,
  15069.  unauthorized individuals may also be able to take advantage of the OSE to
  15070.  steal, manipulate or to deny others access to information held within the
  15071.  system, or to deny involvement in some transaction performed via the
  15072.  system.
  15073.  
  15074.  Security services must therefore be provided within the system if it is
  15075.  to prevent these unauthorized activities.  To achieve an optimum degree
  15076.  of confidence in the correctness and effectiveness of a system's security
  15077.  services, a system specific security policy must be derived and
  15078.  appropriate security functionality designed into the system at the
  15079.  beginning of its life cycle.
  15080.  
  15081.  A relatively high degree of protection for ordinary computer systems can
  15082.  be achieved if system administrators correctly configure and maintain the
  15083.  system according to recommended security guidelines and practice, such as
  15084.  those described within the _X/_O_p_e_n _S_e_c_u_r_i_t_y _G_u_i_d_e.  However, additional
  15085.  security facilities must be supported within the system to achieve
  15086.  protection against the small percentage of attackers who are noncasual,
  15087.  and who are determined to breach the security of the system.  It is the
  15088.  intent of the security extensions to the base POSIX interface standard to
  15089.  support these additional security facilities.
  15090.  
  15091.  The four basic security objectives of a system are to maintain:
  15092.  
  15093.      - Confidentiality.  The system must prevent unauthorized viewing of
  15094.        data.
  15095.  
  15096.      - Integrity.  The system must prevent unauthorized alteration or
  15097.        deletion of data.
  15098.  
  15099.      - Availability.  The system must ensure that authorized users are not
  15100.        prevented from accessing and processing data.
  15101.  
  15102.  
  15103.  
  15104.  
  15105.               Copyright (c) 1991 IEEE.  All rights reserved.
  15106.       This is an unapproved IEEE Standards Draft, subject to change.
  15107.  
  15108.  
  15109.  
  15110.  
  15111.  5.2 System Security Services                                          209
  15112.  
  15113.  
  15114.  
  15115.  
  15116.  
  15117.  
  15118.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  15119.  
  15120.      - Accountability.  The system must ensure that users are made
  15121.        accountable for their actions, for example to ensure that users are
  15122.        correctly billed for system usage.  See also 5.3.4.11.               e
  15123.  
  15124.  Different user groups may place different emphases upon these four basic
  15125.  security objectives.  For example, the military security sector may place
  15126.  more importance upon confidentiality than accountability while,
  15127.  correspondingly, the commercial sector may place more importance upon
  15128.  accountability than confidentiality.
  15129.  
  15130.  
  15131.  5.2.2  Scope
  15132.  
  15133.  One of the goals of system security is to provide defense in depth, such
  15134.  that if one layer of security is breached then further layers of security
  15135.  will limit and/or prevent unauthorized activities within the system.
  15136.  
  15137.  To achieve a high degree of confidence in the correctness and
  15138.  effectiveness of the security of a system that will be processing
  15139.  sensitive information, security must be designed into the system at the
  15140.  beginning of its life cycle.
  15141.  
  15142.  A System Security Policy (SSP) defines what it means for a specific
  15143.  system to be ``secure'' and, as such, forms the basic security input into
  15144.  the system lifecycle.  Specification of an SSP is therefore axiomatic to
  15145.  the design of a secure system.
  15146.  
  15147.  Although the SSP defines what security measures will be provided within
  15148.  the system, it is the system design documentation that defines how these
  15149.  security measures will actually be implemented.
  15150.  
  15151.  One aspect of an SSP may be that it mandates conformance with the POSIX
  15152.  security extensions.
  15153.  
  15154.  Security interface specifications are intended to assist in the            e
  15155.  construction of a secure system.  They do not, in isolation, provide any
  15156.  protection against threats to a system.
  15157.  
  15158.  
  15159.  5.2.3  Reference Model
  15160.  
  15161.  The reference model for security is the same as the model shown in         e
  15162.  Figure 3-3.  Security has an impact on all of the APIs and EEIs in the     e
  15163.  model.                                                                     e
  15164.  
  15165.  
  15166.  
  15167.  
  15168.  
  15169.  
  15170.  
  15171.               Copyright (c) 1991 IEEE.  All rights reserved.
  15172.       This is an unapproved IEEE Standards Draft, subject to change.
  15173.  
  15174.  
  15175.  
  15176.  
  15177.  210                                   5 POSIX OSE Cross-Category Services
  15178.  
  15179.  
  15180.  
  15181.  
  15182.  
  15183.  
  15184.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  15185.  
  15186.  5.2.4  Service Requirements
  15187.  
  15188.  Through an analysis of the potential threats and requirements of the
  15189.  system, the system security objectives and hence the necessary System
  15190.  Security Policy (SSP) rules may be derived.  This analysis must also take
  15191.  into account appropriate corporate, legal, and standardization
  15192.  requirements.
  15193.  
  15194.  System confidentiality, integrity, availability, and accountability may
  15195.  be supported by the following security objectives:
  15196.  
  15197.  _T_e_c_h_n_i_c_a_l__S_e_c_u_r_i_t_y__O_b_j_e_c_t_i_v_e_s
  15198.  
  15199.      - Identification and Authentication.  A system entity, such as a user
  15200.        or system element, must prove that its claimed identity is
  15201.        legitimate, such that another system entity may place confidence in
  15202.        that claimed identity.
  15203.  
  15204.      - Access Control.  Access to system resources will be restricted to
  15205.        authorized entities only.  Residual data contained within an object
  15206.        will be securely erased before it may be reused by a system entity.
  15207.  
  15208.      - Accountability and Audit.  System users must be made accountable
  15209.        for their actions.  Audit trails of these actions will then be
  15210.        maintained and utilized such that unauthorized system activity will
  15211.        be detected.
  15212.  
  15213.      - Accuracy.  The system must ensure that the correctness and
  15214.        consistency of security-relevant information is maintained.
  15215.  
  15216.      - Availability.  System resources will be provided to users in a
  15217.        consistent and reliable manner.
  15218.  
  15219.      - Data Exchange.  Data transmitted between system users and/or
  15220.        elements will be protected from unauthorized interference or
  15221.        viewing.  Originators and recipients of data will be authenticated
  15222.        and will be able to mutually prove their respective participation
  15223.        in the transaction.
  15224.  
  15225.  _N_o_n_t_e_c_h_n_i_c_a_l__S_e_c_u_r_i_t_y__O_b_j_e_c_t_i_v_e_s
  15226.  
  15227.      - Assurance.  The security of the system must be specified, designed,
  15228.        implemented, tested, and maintained in such a way that confidence
  15229.        can be placed in the correct and effective operation of the system.
  15230.        Also, procedures must be specified to ensure continued confidence
  15231.        in the security of the system in the event that the system is
  15232.        modified in some manner.
  15233.  
  15234.  
  15235.  
  15236.  
  15237.               Copyright (c) 1991 IEEE.  All rights reserved.
  15238.       This is an unapproved IEEE Standards Draft, subject to change.
  15239.  
  15240.  
  15241.  
  15242.  
  15243.  5.2 System Security Services                                          211
  15244.  
  15245.  
  15246.  
  15247.  
  15248.  
  15249.  
  15250.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  15251.  
  15252.      - Security Roles and Responsibilities.  Security activities must be
  15253.        partitioned and allocated to identifiable security administrators
  15254.        who will then be responsible for ensuring that their allocated task
  15255.        is satisfactorily performed.
  15256.  
  15257.      - Secure Operating Procedures.  Procedures must be written that will
  15258.        guide system administrators and users as to the correct procedure
  15259.        to follow in the event of some security-relevant occurrence.
  15260.  
  15261.  5.2.4.1  Application Programming Interface Services
  15262.  
  15263.                                                                             e
  15264.  
  15265.  The POSIX security interfaces will support Audit, Privilege,
  15266.  Discretionary Access Control (DAC), Mandatory Access Control (MAC), and
  15267.  Information Labels (ILs).                                                  e
  15268.  
  15269.  The audit services include:                                                e
  15270.  
  15271.      - Ability to record the user identification for actions within an      e
  15272.        audit trail                                                          e
  15273.  
  15274.      - Ability to process the audit trail                                   e
  15275.  
  15276.      - Ability to use the audit trail to generate alarms                    e
  15277.  
  15278.  The privilege control services include:                                    e
  15279.  
  15280.      - Ability to grant users only the minimal security required to         e
  15281.        perform a task                                                       e
  15282.  
  15283.  This will minimize the impact of a subverted security administrator or     e
  15284.  unauthorized usage of a security administrator role.                       e
  15285.  
  15286.  The discretionary access controls (DAC) provide the following services:    e
  15287.  
  15288.      - Ability to control fine-grained user access to objects               e
  15289.  
  15290.      - Ability to provide extended user access bits beyond the traditional  e
  15291.        user-group-other                                                     e
  15292.  
  15293.      - Ability to support access control lists (ACL)                        e
  15294.  
  15295.  The mandatory access controls (MAC) and information labels (IL) support    e
  15296.  policies for labeling:                                                     e
  15297.  
  15298.      - Ability to associate a MAC label with an object                      e
  15299.  
  15300.  
  15301.  
  15302.  
  15303.               Copyright (c) 1991 IEEE.  All rights reserved.
  15304.       This is an unapproved IEEE Standards Draft, subject to change.
  15305.  
  15306.  
  15307.  
  15308.  
  15309.  212                                   5 POSIX OSE Cross-Category Services
  15310.  
  15311.  
  15312.  
  15313.  
  15314.  
  15315.  
  15316.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  15317.  
  15318.      - Ability to label information (e.g., physical document handling       e
  15319.        restrictions)                                                        e
  15320.  
  15321.  5.2.4.2  External Environment Interface Services
  15322.  
  15323.  _N_o_t_e _t_o _r_e_v_i_e_w_e_r_s:  _T_h_i_s _s_u_b_c_l_a_u_s_e _w_i_l_l _b_e _p_r_o_v_i_d_e_d _i_n _a _l_a_t_e_r _d_r_a_f_t.      e
  15324.  _M_o_c_k _b_a_l_l_o_t _r_e_v_i_e_w_e_r_s _a_r_e _w_e_l_c_o_m_e _t_o _s_u_b_m_i_t _c_o_m_m_e_n_t_s _o_n _t_h_e _t_y_p_e_s _o_f       e
  15325.  _s_e_r_v_i_c_e_s _r_e_q_u_i_r_e_d _a_t _t_h_e _E_E_I.                                              e
  15326.  
  15327.  
  15328.  5.2.5  Standards, Specifications, and Gaps
  15329.  
  15330.  Table 5-2 lists the current, emerging, and gaps in security standards.     e
  15331.  
  15332.  
  15333.                      Table 5-2  -  Security Standards                       e
  15334.  __________________________________________________________________________________________________________________________________________________  e
  15335.                Service           Type    Specification     Subclause        e
  15336.        _____________________________________________________________        e
  15337.  
  15338.        System Security            E     IEEE P1003.6 API   5.2.5.2          eee
  15339.  
  15340.        Access Control             E     ISO/IEC 8613       5.2.5.2          eee
  15341.  
  15342.        Directory Authorization    S     CCITT X.509        5.2.5.1          eee
  15343.  
  15344.        Security                   G     ECMA CMA 138       5.2.5.3          eee
  15345.  
  15346.        Trusted Systems            G     DOD 5200.28-STD    5.2.5.3          eee
  15347.  __________________________________________________________________________________________________________________________________________________  e
  15348.  
  15349.  
  15350.  5.2.5.1  Current Standards                                                 e
  15351.  
  15352.  ISO 7498-2, _I_n_f_o_r_m_a_t_i_o_n _P_r_o_c_e_s_s_i_n_g _S_y_s_t_e_m_s--_O_p_e_n _S_y_s_t_e_m_s _I_n_t_e_r_c_o_n_n_e_c_t_i_o_n   e
  15353.  _R_e_f_e_r_e_n_c_e _M_o_d_e_l, _S_e_c_u_r_i_t_y _A_r_c_h_i_t_e_c_t_u_r_e.                                    e
  15354.  
  15355.  ISO/IEC 8613, _I_n_f_o_r_m_a_t_i_o_n _T_e_c_h_n_o_l_o_g_y--_T_e_x_t _a_n_d _O_f_f_i_c_e _S_y_s_t_e_m_s--_O_f_f_i_c_e      e
  15356.  _D_o_c_u_m_e_n_t _A_r_c_h_i_t_e_c_t_u_r_e (_O_D_A) _a_n_d _I_n_t_e_r_c_h_a_n_g_e _F_o_r_m_a_t.                        e
  15357.  
  15358.  CCITT X.509, _M_e_s_s_a_g_e _H_a_n_d_l_i_n_g _S_y_s_t_e_m, _I_S_O/_C_C_I_T_T _X._4_0_0 _D_i_r_e_c_t_o_r_y            e
  15359.  _A_u_t_h_e_n_t_i_c_a_t_i_o_n _F_r_a_m_e_w_o_r_k.                                                  e
  15360.  
  15361.  ECMA CMA 138, _S_e_c_u_r_i_t_y _I_n _O_p_e_n _S_y_s_t_e_m_s--_D_a_t_a _E_l_e_m_e_n_t_s _a_n_d _S_e_r_v_i_c_e          e
  15362.  _D_e_f_i_n_i_t_i_o_n_s.                                                               e
  15363.  
  15364.  
  15365.  
  15366.  
  15367.  
  15368.  
  15369.               Copyright (c) 1991 IEEE.  All rights reserved.
  15370.       This is an unapproved IEEE Standards Draft, subject to change.
  15371.  
  15372.  
  15373.  
  15374.  
  15375.  5.2 System Security Services                                          213
  15376.  
  15377.  
  15378.  
  15379.  
  15380.  
  15381.  
  15382.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  15383.  
  15384.  5.2.5.2  Emerging Standards                                                e
  15385.  
  15386.  _I_n_f_o_r_m_a_t_i_o_n _R_e_t_r_i_e_v_a_l, _T_r_a_n_s_f_e_r _a_n_d _M_a_n_a_g_e_m_e_n_t _F_o_r _O_S_I--_D_r_a_f_t _A_c_c_e_s_s       e
  15387.  _C_o_n_t_r_o_l _F_r_a_m_e_w_o_r_k, _I_S_O/_I_E_C _S_C_2_1/_W_G_1.                                       e
  15388.  
  15389.  _D_r_a_f_t _A_d_d_e_n_d_u_m _t_o _I_S_O _8_6_1_3 _O_n _S_e_c_u_r_i_t_y                                     e
  15390.  
  15391.  _T_h_e _P_1_0_0_3._6 _s_c_o_p_e _i_s _l_i_m_i_t_e_d _t_o _s_e_c_u_r_i_t_y _e_x_t_e_n_s_i_o_n_s _f_o_r _t_h_o_s_e _i_n_t_e_r_f_a_c_e_s   e
  15392.  _d_e_f_i_n_e_d _w_i_t_h_i_n _t_h_e _b_a_s_e _P_O_S_I_X _i_n_t_e_r_f_a_c_e _s_p_e_c_i_f_i_c_a_t_i_o_n (_P_O_S_I_X._1 {_2}).       e
  15393.  _I_s_s_u_e_s _n_o_t _a_d_d_r_e_s_s_e_d _w_i_t_h_i_n _t_h_e _P_1_0_0_3._6 _s_c_o_p_e _i_n_c_l_u_d_e _n_o_n_i_n_t_e_r_f_a_c_e-        e
  15394.  _s_p_e_c_i_f_i_c _a_r_c_h_i_t_e_c_t_u_r_a_l _a_s_s_u_r_a_n_c_e _i_s_s_u_e_s _a_n_d _c_o_m_m_u_n_i_c_a_t_i_o_n_s _s_e_c_u_r_i_t_y.       e
  15395.  
  15396.  _5._2._5._3  Gaps in Available Standards                                       e
  15397.  
  15398.  _T_h_e _I_n_f_o_r_m_a_t_i_o_n _T_e_c_h_n_o_l_o_g_y _S_e_c_u_r_i_t_y _E_v_a_l_u_a_t_i_o_n _C_r_i_t_e_r_i_a, Version 1.2, 28   e
  15399.  June 1991.                                                                 e
  15400.  
  15401.  US DoD, DOD 5200.28-STD, _T_r_u_s_t_e_d _C_o_m_p_u_t_e_r _S_y_s_t_e_m _E_v_a_l_u_a_t_i_o_n _C_r_i_t_e_r_i_a.      e
  15402.  
  15403.  Trusted Network Interpretation                                             e
  15404.  
  15405.  Trusted Database Interpretation                                            e
  15406.  
  15407.  Computer Security Subsystem Interpretation                                 e
  15408.  
  15409.  
  15410.  
  15411.  
  15412.  
  15413.  
  15414.  
  15415.  
  15416.  
  15417.  
  15418.  
  15419.  
  15420.  
  15421.  
  15422.  
  15423.  
  15424.  
  15425.  
  15426.  
  15427.  
  15428.  
  15429.  
  15430.  
  15431.  
  15432.  
  15433.  
  15434.  
  15435.               Copyright (c) 1991 IEEE.  All rights reserved.
  15436.       This is an unapproved IEEE Standards Draft, subject to change.
  15437.  
  15438.  
  15439.  
  15440.  
  15441.  214                                   5 POSIX OSE Cross-Category Services
  15442.  
  15443.  
  15444.  
  15445.  
  15446.  
  15447.  
  15448.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  15449.  
  15450.  5.3  Information System Management
  15451.  
  15452.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _D_o_n _F_o_l_l_a_n_d, _N_e_i_l _C_r_o_f_t
  15453.  
  15454.  
  15455.  5.3.1  Overview and Rationale
  15456.  
  15457.  Information System Management issues are considered in this clause.  The   e
  15458.  subject is concerned with the effective management and control of the      e
  15459.  complete set of resources that comprise an information system.  The tools  e
  15460.  in support of the services required by system managers need to reflect     e
  15461.  the portability and interworking attributes of open systems and fit the    e
  15462.  Open System Environment Reference Model (Figure 3-3).  It is necessary to  e
  15463.  consider a variety of system management support scenarios (central         e
  15464.  management, dispersed management, or hybrid), addressing both distributed  e
  15465.  systems and standalone systems.  The issues apply to application software  e
  15466.  or software components of the application platform.  It is necessary to    e
  15467.  support automated management and operation of the IT infrastructure and    e
  15468.  address a wide variety of licensing scenarios.                             e
  15469.  
  15470.  
  15471.  5.3.2  Scope
  15472.  
  15473.  This category includes services and policies that address the
  15474.  administration of the overall information system required by any
  15475.  organization, including:
  15476.  
  15477.      - Information Management
  15478.  
  15479.      - Processor Management (e.g., Add new user)
  15480.  
  15481.      - Network Management
  15482.  
  15483.      - Configuration Management
  15484.  
  15485.      - Security Management (e.g., Authentication, Key Management)
  15486.  
  15487.      - Accounting Management
  15488.  
  15489.      - Performance Management
  15490.  
  15491.  Administration services accessible from the API may have Programming
  15492.  Language or Language Binding service specifications associated with them.
  15493.  
  15494.  These services are defined to provide system and network administrator
  15495.  portability.
  15496.  
  15497.  
  15498.  
  15499.  
  15500.  
  15501.               Copyright (c) 1991 IEEE.  All rights reserved.
  15502.       This is an unapproved IEEE Standards Draft, subject to change.
  15503.  
  15504.  
  15505.  
  15506.  
  15507.  5.3 Information System Management                                     215
  15508.  
  15509.  
  15510.  
  15511.  
  15512.  
  15513.  
  15514.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  15515.  
  15516.  5.3.3  Reference Model
  15517.  
  15518.  The Reference Model for system management is the same as the model shown   e
  15519.  in Figure 3-3.  System management impacts all of the APIs and EEIs in the  e
  15520.  POSIX Open System Environment Reference Model.                             e
  15521.  
  15522.  
  15523.  5.3.4  Service Requirements
  15524.  
  15525.  The following services should be provided:                                 e
  15526.  
  15527.  5.3.4.1  Processor Configuration Management
  15528.  
  15529.  Configuration management consists of four basic functions:
  15530.  identification, control, status accounting, and verification.
  15531.  
  15532.  Identification involves specifying and identifying all components of an
  15533.  IT infrastructure.
  15534.  
  15535.  Control implies the ability to agree and ``freeze'' configuration items
  15536.  (CIs) and then to make changes only with agreement of the appropriate
  15537.  named authorities.  Control is concerned with ensuring that none of the
  15538.  CIs shown is altered or replaced and that no CIs are added without
  15539.  appropriate authorization.
  15540.  
  15541.  Status accounting involves the recording and reporting of all current and
  15542.  historical data concerned with each CI.  Status accounting maintains
  15543.  records of the current, previous and planned states and attributes of the
  15544.  CIs and tracks these states and attributes:  for example, as the status
  15545.  of a CI changes from ``development'' through to ``test,'' ``scheduled to
  15546.  go live,'' ``live,'' and through to ``archived.''
  15547.  
  15548.  Verification consists of a series of reviews and audits to ensure that
  15549.  there is conformity between all CIs and the authorized state of CIs as
  15550.  recorded in the configuration management database (CMDB).  It is
  15551.  concerned with checking that the physical CIs actually match the
  15552.  authorized system as described in the CMDB.
  15553.  
  15554.  5.3.4.2  Network Configuration Management
  15555.  
  15556.  To ensure the viability of network services the configuration of systems
  15557.  and services must be controlled and managed.  Effective configuration
  15558.  management will produce a minimum risk environment.
  15559.  
  15560.  Configuration management procedures must ensure that details are provided
  15561.  for network equipment and systems covering:
  15562.  
  15563.      - Configuration activities--how to configure the network equipment
  15564.  
  15565.  
  15566.  
  15567.               Copyright (c) 1991 IEEE.  All rights reserved.
  15568.       This is an unapproved IEEE Standards Draft, subject to change.
  15569.  
  15570.  
  15571.  
  15572.  
  15573.  216                                   5 POSIX OSE Cross-Category Services
  15574.  
  15575.  
  15576.  
  15577.  
  15578.  
  15579.  
  15580.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  15581.  
  15582.      - Security controls
  15583.  
  15584.      - Access controls
  15585.  
  15586.      - Configuration history log
  15587.  
  15588.      - Configuration authority
  15589.  
  15590.      - Build details
  15591.  
  15592.      - Fall-back and test records
  15593.  
  15594.      - Management reporting requirements.
  15595.  
  15596.  5.3.4.3  Distributed System Configuration Management
  15597.  
  15598.  The services here consist of the following:                                e
  15599.  
  15600.      - Authentication services for a distributed system environment
  15601.  
  15602.      - Distributed Naming Service Configuration
  15603.  
  15604.      - Distributed Time Service Configuration
  15605.  
  15606.      - X Window system configuration
  15607.  
  15608.      - Window/Session Manager configuration
  15609.  
  15610.  5.3.4.4  Software Installation and Distribution
  15611.  
  15612.  The main types of software to be installed and distributed are
  15613.  application programs developed in-house, bought-in applications, and
  15614.  utility software and personal computer software packages.  All software
  15615.  needs to be managed effectively from development or purchase through to
  15616.  the live environment.  Unless the distribution and implementation process
  15617.  can be controlled automatically, or from the center using software tools,
  15618.  procedures must be in place to ensure that distributed software arrives
  15619.  when expected and is checked for authenticity in whatever way is
  15620.  practical, and that the software is brought into use when required.  The
  15621.  main procedures involved in software distribution and installation are:
  15622.  
  15623.      - System management staff at the center to inform remote staff when    e
  15624.        to expect distribution software to arrive.                           e
  15625.  
  15626.      - Recipients to report to system management staff when the             e
  15627.        distributed software has arrived successfully.                       e
  15628.  
  15629.      - System management staff to check that all software is received as    e
  15630.        expected at locations.                                               e
  15631.  
  15632.  
  15633.               Copyright (c) 1991 IEEE.  All rights reserved.
  15634.       This is an unapproved IEEE Standards Draft, subject to change.
  15635.  
  15636.  
  15637.  
  15638.  
  15639.  5.3 Information System Management                                     217
  15640.  
  15641.  
  15642.  
  15643.  
  15644.  
  15645.  
  15646.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  15647.  
  15648.      - System management staff to issue clear instructions about when the   e
  15649.        software is to be implemented.                                       e
  15650.  
  15651.      - Location staff to report to system management at the center when     e
  15652.        the software has been implemented.  The release record on the        e
  15653.        Configuration Management Database will state which installations
  15654.        are to receive the release.  This database must be updated to
  15655.        reflect the receipt and implementation of the release at each site.
  15656.  
  15657.  5.3.4.5  License Services
  15658.  
  15659.  The terms and conditions relating to the supply of software may place
  15660.  legal restrictions on the organization (e.g., no unauthorized copies to
  15661.  be made).  It is particularly important therefore that the Configuration
  15662.  Management Database is updated with details of who holds copies of
  15663.  software items.  This assists the organization in discharging its legal
  15664.  obligations and assists auditors in checking for the existence of
  15665.  unauthorized copies.
  15666.  
  15667.  All authorized copies of licensed or purchased software that are made by   e
  15668.  system management staff should be allocated a unique copy number and       e
  15669.  recorded in the Configuration Management Database together with where      e
  15670.  they are located and who is responsible for them.  Procedural
  15671.  restrictions should be introduced to prohibit the unauthorized copying of
  15672.  software, and regular software audits should include a check for any
  15673.  unauthorized copies.
  15674.  
  15675.  5.3.4.6  Print Output and Distribution Services
  15676.  
  15677.  Output and distribution packages control output production and
  15678.  distribution from the moment the output is planned to the time the user
  15679.  receives the print.  The working criteria need to be set up first; e.g.,
  15680.  define who receives the report and how much of the report the user gets.
  15681.  
  15682.  The main functions are:
  15683.  
  15684.      - The report can be limited to parts wanted by the user.
  15685.  
  15686.      - Multiple copies of the entire report, or of selected sections can
  15687.        be produced.
  15688.  
  15689.      - Reports are grouped by recipient within delivery location.
  15690.  
  15691.      - Reports for each job are spooled as a group when the job is
  15692.        complete.
  15693.  
  15694.      - The number of whole reports and individual pages received by each
  15695.        user are recorded.
  15696.  
  15697.  
  15698.  
  15699.               Copyright (c) 1991 IEEE.  All rights reserved.
  15700.       This is an unapproved IEEE Standards Draft, subject to change.
  15701.  
  15702.  
  15703.  
  15704.  
  15705.  218                                   5 POSIX OSE Cross-Category Services
  15706.  
  15707.  
  15708.  
  15709.  
  15710.  
  15711.  
  15712.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  15713.  
  15714.      - Report production can be monitored and managed efficiently.
  15715.  
  15716.  Output and Distribution packages should include the following:             e
  15717.  
  15718.      - Printing and distribution of whole and part reports
  15719.  
  15720.      - Status (queued, printing etc) of the report tracked
  15721.  
  15722.      - Online viewing of reports
  15723.  
  15724.      - Ability to archive report files
  15725.  
  15726.      - Ability to support a wide range of printers
  15727.  
  15728.      - Costing and charging functionality
  15729.  
  15730.      - Security facilities
  15731.  
  15732.  By using an output distribution package, the delivery of reports to the
  15733.  correct person at the correct location can be ensured.  Paper, time, and
  15734.  IT resource are saved as the users receive only the parts of reports that
  15735.  they need, and can also view the reports online.  The number of pages
  15736.  printed can be controlled.  Reports can be tracked from the time they are
  15737.  created to the time they are delivered to the user, allowing good
  15738.  security monitoring.
  15739.  
  15740.  5.3.4.7  Office Media Management and Backup/Restore
  15741.  
  15742.  The main services of magnetic tape and data cartridge management systems   e
  15743.  are:
  15744.  
  15745.      - Provide automated support for tape housekeeping and maintenance
  15746.        including:
  15747.  
  15748.         +o Allocating tapes and releasing them for reuse helping
  15749.  
  15750.         +o To ensure even patterns of use where appropriate
  15751.  
  15752.         +o Constructing and triggering cleaning schedules
  15753.  
  15754.         +o Maintaining the security of data
  15755.  
  15756.      - Help automate archiving (vault management) for offsite storage
  15757.  
  15758.      - Help identify growth requirements
  15759.  
  15760.  Vault management is concerned with controlling the movement of tape
  15761.  cycles from one storage location to another.  As a tape cycle is used,
  15762.  the tape management system automatically logs a different vault
  15763.  
  15764.  
  15765.               Copyright (c) 1991 IEEE.  All rights reserved.
  15766.       This is an unapproved IEEE Standards Draft, subject to change.
  15767.  
  15768.  
  15769.  
  15770.  
  15771.  5.3 Information System Management                                     219
  15772.  
  15773.  
  15774.  
  15775.  
  15776.  
  15777.  
  15778.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  15779.  
  15780.  identifier against each tape.
  15781.  
  15782.  A backup strategy is required to control the frequency of backups and the
  15783.  way in which they are created; e.g., whole volumes to cartridge or
  15784.  individual files to tape.
  15785.  
  15786.  The backups and restores of system and application software should be
  15787.  separate from the backups and restores of data.  Software and library
  15788.  backups should be explicitly scheduled and the complete software item or
  15789.  library backed up.  The schedule for backing up files must be fully
  15790.  documented, properly maintained and adequately safeguarded as the
  15791.  contents of the schedule are required for disaster recovery purposes.
  15792.  
  15793.  5.3.4.8  Online Disk Management
  15794.  
  15795.  The operation of disk management systems requires that they take account
  15796.  of a range of factors such as retention period, recovery, space
  15797.  fragmentation, disk overflow, file and record activity levels, and
  15798.  channel use.  Some systems merely report against values or thresholds
  15799.  set, but increasingly they invoke corrective action.  Typically, the
  15800.  corrective action is file and disk reorganization or file and data
  15801.  archiving.
  15802.  
  15803.  If a disk management system is used, the constant monitoring and
  15804.  actioning of requests for disk space can be minimized.  Disk space may be
  15805.  collectively pooled and unused space constantly reclaimed.
  15806.  
  15807.  5.3.4.9  Job Scheduling
  15808.  
  15809.  Scheduling involves the continuous organization of jobs and processes
  15810.  into the most efficient sequence, maximizing throughput and utilization
  15811.  to meet the targets set in service level agreements (SLA).  Jobs are
  15812.  scheduled to ensure:
  15813.  
  15814.      - SLAs and user requirements are met; e.g., certain jobs need to be
  15815.        run by a certain time
  15816.  
  15817.      - Available capacity is used effectively; e.g., the workload run at
  15818.        any given time does not exceed the practical capacity.
  15819.  
  15820.  The minimum services of a scheduler should include:                        e
  15821.  
  15822.      - A high upper limit for the number of relationships allowed between
  15823.        jobs
  15824.  
  15825.      - The ability to schedule by calendar and criteria
  15826.  
  15827.      - Workload balancing support
  15828.  
  15829.  
  15830.  
  15831.               Copyright (c) 1991 IEEE.  All rights reserved.
  15832.       This is an unapproved IEEE Standards Draft, subject to change.
  15833.  
  15834.  
  15835.  
  15836.  
  15837.  220                                   5 POSIX OSE Cross-Category Services
  15838.  
  15839.  
  15840.  
  15841.  
  15842.  
  15843.  
  15844.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  15845.  
  15846.      - Levels of security
  15847.  
  15848.      - Ability to restart jobs
  15849.  
  15850.      - Operator override capability
  15851.  
  15852.      - Capability to model future workloads.
  15853.  
  15854.  5.3.4.10  User Administration                                              e
  15855.  
  15856.  The services here consist of the ability to:                               e
  15857.  
  15858.      - Create a new user or group of users                                  e
  15859.  
  15860.      - Delete a user or group of users                                      e
  15861.  
  15862.      - Allocate system resources to a user or a group of users              e
  15863.  
  15864.  5.3.4.11  Accounting
  15865.  
  15866.  An effective cost management system should contribute to the development   e
  15867.  of a sound investment strategy that recognizes and evaluates the options   e
  15868.  and flexibility available from modern technology.  The services here       e
  15869.  should provide the ability to:                                             e
  15870.  
  15871.      - Establish targets for performance                                    e
  15872.  
  15873.      - Measure performance against targets                                  e
  15874.  
  15875.      - Measure and prioritize resource usage                                e
  15876.  
  15877.      - Monitor assets and maintain records for control purposes             e
  15878.  
  15879.      - Apportion costs of IT services to users                              e
  15880.  
  15881.      - Report costs to management and users                                 e
  15882.  
  15883.  5.3.4.12  Performance Management
  15884.  
  15885.  The services here should provide the ability to:                           e
  15886.  
  15887.      - Monitor hardware, software, and network performance                  e
  15888.  
  15889.      - Monitor workload and throughput                                      e
  15890.  
  15891.      - Set and adjust system parameters to tune performance                 e
  15892.  
  15893.      - Monitor terminal response time                                       e
  15894.  
  15895.  
  15896.  
  15897.               Copyright (c) 1991 IEEE.  All rights reserved.
  15898.       This is an unapproved IEEE Standards Draft, subject to change.
  15899.  
  15900.  
  15901.  
  15902.  
  15903.  5.3 Information System Management                                     221
  15904.  
  15905.  
  15906.  
  15907.  
  15908.  
  15909.  
  15910.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  15911.  
  15912.  5.3.4.13  Capacity Management
  15913.  
  15914.  An effective and efficient capacity management function contains at least
  15915.  the following elements:
  15916.  
  15917.      - Performance management to monitor and optimize the use of current
  15918.        systems.
  15919.  
  15920.      - A capacity management database that contains current and historic
  15921.        data of technical and business related interest.  This database
  15922.        forms the basis for the provision of both tactical and strategic
  15923.        reports on performance and capacity.
  15924.  
  15925.      - Workload management to identify and understand the applications
  15926.        that make use of the system.  The understanding of workloads has
  15927.        both a technical and business related nature.  This involves
  15928.        application sizing to accurately predict the performance and
  15929.        required capacity of new applications.
  15930.  
  15931.      - Capacity planning to accurately plan the required hardware resource
  15932.        and associated cost for the future and to predict the effect on
  15933.        performance and capacity of both tactical and strategic plans.
  15934.  
  15935.  5.3.4.14  Fault Management                                                 e
  15936.  
  15937.  These services allow the system to react to the loss or incorrect
  15938.  operation of system components at various levels (hardware, logical,
  15939.  services, etc.).  The classical model of fault tolerance has a three-step
  15940.  approach.  The three steps are fault detection, fault isolation, and
  15941.  fault recovery.  Typically implementations divide these steps into
  15942.  multiple steps or integrate them into one or two steps.  Additionally,
  15943.  fault diagnosis services support the other steps in the treatment of a
  15944.  fault.
  15945.  
  15946.  Various fault tolerance strategies, such as checkpointing and voting, are
  15947.  implemented as a collection of services comprising one or more of the
  15948.  steps in the fault tolerance classical model.  For example, services
  15949.  involved in implementing a three-node voting scheme will include a vote
  15950.  comparator service (fault detection), vote analyzer service (fault
  15951.  isolation/fault diagnosis), a service to pass the majority ``answer''
  15952.  through (fault recovery) as well as a service to disable the faulty
  15953.  resource and reconfigure the voters (fault recovery/reconfiguration).
  15954.  
  15955.  _F_a_u_l_t__D_e_t_e_c_t_i_o_n
  15956.  
  15957.  Fault detection services are concerned with determining when a fault has
  15958.  occurred in the system.  Fault detection services are both passive and
  15959.  active.  Active services are those that attempt to determine the status
  15960.  of various system components by testing those components.  Passive
  15961.  
  15962.  
  15963.               Copyright (c) 1991 IEEE.  All rights reserved.
  15964.       This is an unapproved IEEE Standards Draft, subject to change.
  15965.  
  15966.  
  15967.  
  15968.  
  15969.  222                                   5 POSIX OSE Cross-Category Services
  15970.  
  15971.  
  15972.  
  15973.  
  15974.  
  15975.  
  15976.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  15977.  
  15978.  services, on the other hand, try to ascertain system components by
  15979.  passively gathering information and watching the behavior of the system.
  15980.  
  15981.  _F_a_u_l_t__I_s_o_l_a_t_i_o_n
  15982.  
  15983.  Fault isolation services attempt to determine the component at fault and
  15984.  segregate the faulty component from the rest of the system.  Services may
  15985.  be shared between the fault detection and isolation service library in
  15986.  that they perform both functions.
  15987.  
  15988.  _F_a_u_l_t__R_e_c_o_v_e_r_y
  15989.  
  15990.  Fault recovery services attempt to bring the system into a consistent
  15991.  state.  These services may be very interrelated to the scheduling
  15992.  services, network services, and data base services, depending on the
  15993.  recovery scheme used.
  15994.  
  15995.  Redundancy of resources is many times needed to support fault recovery.
  15996.  Resources may include data, process, processor, disk drive, etc.
  15997.  
  15998.  As parts of the system fail, it may no longer be possible to satisfy all
  15999.  the requirements of the application.  Services to support graceful
  16000.  degradation may be used to ensure that critical activities do not fail.
  16001.  
  16002.  _F_a_u_l_t__D_i_a_g_n_o_s_i_s
  16003.  
  16004.  These services deal with the system's ability to analyze the attributes
  16005.  of a system fault and determine its cause.  These services tend to be
  16006.  very interrelated with fault detection and fault isolation services.
  16007.  
  16008.  _F_a_u_l_t__A_v_o_i_d_a_n_c_e
  16009.  
  16010.  These services involve the avoidance of faults before a failure in the
  16011.  system component occurs.  If a system can detect that the operation of a
  16012.  component is approaching the edge of its operational range, a standby or
  16013.  backup component could be phased in to replace it.  Another form of fault
  16014.  avoidance is logging of shocks, temperature extremes, etc., so that it
  16015.  can be predicted that a component will not meet its original expected
  16016.  service life.
  16017.  
  16018.  _S_o_f_t_w_a_r_e__S_a_f_e_t_y
  16019.  
  16020.  These services involve the system's ability to keep application software
  16021.  from causing harm to the system's software, hardware, or user.  For
  16022.  instance, a process may attempt to write into another process's memory
  16023.  space without permission.
  16024.  
  16025.  A good example of a reliability method that may provide software safety
  16026.  is a bounds checker.  The checker compares an answer supplied against the
  16027.  
  16028.  
  16029.               Copyright (c) 1991 IEEE.  All rights reserved.
  16030.       This is an unapproved IEEE Standards Draft, subject to change.
  16031.  
  16032.  
  16033.  
  16034.  
  16035.  5.3 Information System Management                                     223
  16036.  
  16037.  
  16038.  
  16039.  
  16040.  
  16041.  
  16042.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  16043.  
  16044.  bounds.  If it is not within the bounds, the bounds checker will not
  16045.  allow the answer to propagate, possibly causing damage to the system's
  16046.  integrity.  Additionally, it may send a fault message (or security
  16047.  violation information, depending on the type of answers expected) to the
  16048.  proper service.
  16049.  
  16050.  To enhance software safety, other services and processes should be only
  16051.  given the resources necessary to complete their job.
  16052.  
  16053.  _S_t_a_t_u_s__o_f__S_y_s_t_e_m__C_o_m_p_o_n_e_n_t_s
  16054.  
  16055.  These services involve the obtrusive and nonobtrusive diagnosis of the
  16056.  state of system components.  For further explanation of these services,
  16057.  see Fault Detection and Fault Diagnosis services.  These services may
  16058.  additionally need to record and/or display information concerning
  16059.  performance, configuration, and general system information.
  16060.  
  16061.  _R_e_c_o_n_f_i_g_u_r_a_t_i_o_n
  16062.  
  16063.  These services allow the system to reconfigure its view of the world.
  16064.  This services allow the system to substitute different resources to
  16065.  perform system functions such as substituting a new physical I/O channel
  16066.  to support a logical channel.  These services are part of the API but
  16067.  their use may be restricted to specially authorized programs such as
  16068.  those used by the target system operator.
  16069.  
  16070.  _M_a_i_n_t_a_i_n_a_b_i_l_i_t_y
  16071.  
  16072.  Maintainability services provide support for the maintenance of a system.
  16073.  A major component of that support is the collection and logging of
  16074.  information about the operation of the system.  Typical information to be
  16075.  logged is:
  16076.  
  16077.      - Software and hardware errors during operation
  16078.  
  16079.      - Processes that failed or almost failed to meet scheduled deadlines
  16080.  
  16081.      - Performance metrics for system tuning
  16082.  
  16083.      - Times when the system operated in extreme environmental conditions
  16084.  
  16085.      - Errors reported during startup self-testing
  16086.  
  16087.      - Attempts to violate rules of the system's security policy.
  16088.  
  16089.  
  16090.  
  16091.  
  16092.  
  16093.  
  16094.  
  16095.               Copyright (c) 1991 IEEE.  All rights reserved.
  16096.       This is an unapproved IEEE Standards Draft, subject to change.
  16097.  
  16098.  
  16099.  
  16100.  
  16101.  224                                   5 POSIX OSE Cross-Category Services
  16102.  
  16103.  
  16104.  
  16105.  
  16106.  
  16107.  
  16108.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  16109.  
  16110.  5.3.4.15  Security Management
  16111.  
  16112.      - Configuration of appropriate ACLs for System, User Interface,
  16113.        Storage, Network, and application software services.
  16114.  
  16115.  
  16116.  5.3.5  Standards, Specifications, and Gaps
  16117.  
  16118.  There are a number of international and national initiatives to develop    e
  16119.  standards for system management.                                           e
  16120.  
  16121.  _N_o_t_e _t_o _r_e_v_i_e_w_e_r_s:  _T_h_i_s _s_u_b_c_l_a_u_s_e _w_i_l_l _b_e _e_x_p_a_n_d_e_d _i_n _a _l_a_t_e_r _d_r_a_f_t.      e
  16122.  
  16123.  
  16124.  5.3.6  OSE Cross-Category Services
  16125.  
  16126.      - Security for remote print jobs
  16127.  
  16128.  
  16129.  5.3.7  Related Standards
  16130.  
  16131.  None.                                                                      e
  16132.  
  16133.  
  16134.  
  16135.  
  16136.  
  16137.  
  16138.  
  16139.  
  16140.  
  16141.  
  16142.  
  16143.  
  16144.  
  16145.  
  16146.  
  16147.  
  16148.  
  16149.  
  16150.  
  16151.  
  16152.  
  16153.  
  16154.  
  16155.  
  16156.  
  16157.  
  16158.  
  16159.  
  16160.  
  16161.               Copyright (c) 1991 IEEE.  All rights reserved.
  16162.       This is an unapproved IEEE Standards Draft, subject to change.
  16163.  
  16164.  
  16165.  
  16166.  
  16167.  5.3 Information System Management                                     225
  16168.  
  16169.  
  16170.  
  16171.  
  16172.  
  16173.  
  16174.  
  16175.  
  16176.  
  16177.  
  16178.  
  16179.  
  16180.  
  16181.  
  16182.  
  16183.  
  16184.  
  16185.  
  16186.  
  16187.  
  16188.  
  16189.  
  16190.  
  16191.  
  16192.  
  16193.  
  16194.  
  16195.  
  16196.  
  16197.  
  16198.  
  16199.  
  16200.  
  16201.  
  16202.  
  16203.  
  16204.  
  16205.  
  16206.  
  16207.  
  16208.  
  16209.  
  16210.  
  16211.  
  16212.  
  16213.  
  16214.  
  16215.  
  16216.  
  16217.  
  16218.  
  16219.  
  16220.  
  16221.  
  16222.  
  16223.  
  16224.  
  16225.  
  16226.  
  16227.  
  16228.  
  16229.  
  16230.  
  16231.  
  16232.  
  16233.  
  16234.  
  16235.  
  16236.  
  16237.  
  16238.  
  16239.  
  16240.                                                                P1003.0/D14
  16241.  
  16242.  
  16243.  
  16244.  
  16245.  
  16246.  
  16247.  
  16248.  
  16249.                             Section 6: Profiles
  16250.  
  16251.  
  16252.  
  16253.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _F_r_i_t_z _S_c_h_u_l_z
  16254.  
  16255.  This section targets those who want to know more about what profiles are
  16256.  and those who are in the process of developing their own profiles.  The
  16257.  latter group consists of those developing formal ``Standardized
  16258.  Profiles'' and those developing less formal profiles for their industry
  16259.  group (e.g., a banking trade association) or their own company or
  16260.  enterprise for procurement or strategic planning purposes.
  16261.  
  16262.  Those not involved in the development of profiles should read 6.2.  Parts
  16263.  of 6.3 also may be useful, especially the earlier subclauses that give
  16264.  definitions of terms and explain concepts more precisely.
  16265.  
  16266.  Developers of profiles that are not formal POSIX Standardized Profiles
  16267.  (POSIX SPs) should read all of Section 6.
  16268.  
  16269.  Developers of profiles that are formal POSIX SPs should read all of
  16270.  Section 6 and Annex A.
  16271.  
  16272.  
  16273.  
  16274.  6.1  Scope
  16275.  
  16276.  The information presented here about profiles is limited in scope to
  16277.  assist those needing to understand profile concepts as they apply to the
  16278.  POSIX Open System Environment.  Covered are profiles constructed from
  16279.  standards (and profiles) listed within this guide (that, by design, are
  16280.  consistent with POSIX.1).
  16281.  
  16282.  The goal is to create a common approach and documentation scope and style
  16283.  for POSIX-oriented profiles.  Annex A goes further by giving specific
  16284.  guidance to developers of formal POSIX SPs.
  16285.  
  16286.  
  16287.  
  16288.  
  16289.  
  16290.  
  16291.  
  16292.  
  16293.               Copyright (c) 1991 IEEE.  All rights reserved.
  16294.       This is an unapproved IEEE Standards Draft, subject to change.
  16295.  
  16296.  
  16297.  
  16298.  
  16299.  6.1 Scope                                                             227
  16300.  
  16301.  
  16302.  
  16303.  
  16304.  
  16305.  
  16306.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  16307.  
  16308.  6.2  Profile Concepts
  16309.  
  16310.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _B_o_b _G_a_m_b_r_e_l
  16311.  
  16312.  _I_n_t_r_o_d_u_c_t_i_o_n
  16313.  
  16314.  This guide is designed to assist in the selection of standards in the
  16315.  procurement process or as a target application environment.  Profiles
  16316.  also assist in the selection of standards.  A profile is a suite of base
  16317.  standards with specified options.  Profiles can be created by software
  16318.  developers to describe the environment they target or by buyers to
  16319.  identify their purchasing objectives.
  16320.  
  16321.  _B_a_s_i_c__T_e_r_m_i_n_o_l_o_g_y
  16322.  
  16323.                                                                             e
  16324.  
  16325.  There are two general classes of standards documents:
  16326.  
  16327.      - Base standards
  16328.  
  16329.      - Profiles, including application environment profiles (AEP),          e
  16330.        standardized profiles, and POSIX standardized profiles               e
  16331.  
  16332.  See 2.2.2 for format definitions of these terms.  As used in this guide,   e
  16333.  base standards specify functionality, syntax, protocols, data formats,     e
  16334.  etc., in detail, while profiles do not.  Instead, profiles (sometimes      e
  16335.  called ``functional standards'') identify which base standards are         e
  16336.  applicable.  Since base standards often consist of a base or mandatory     e
  16337.  part and a number of selectable optional parts and values, profiles may
  16338.  also (or may not) choose, for each base standard, specific options or
  16339.  values.  A profile may also identify other profiles, allowing the
  16340.  construction of ``larger'' profiles based on both base standards and
  16341.  other ``smaller'' profiles.
  16342.  
  16343.  NOTE:  In the context of internationalization, the term ``national         e
  16344.  profile'' is frequently used and will be found, for example, in            e
  16345.  POSIX.1 {2} and POSIX.2.  Its meaning is consistent with the definitions
  16346.  in 2.2.2, but in many cases such profiles reflect national cultural
  16347.  conventions.  For example, Denmark and Japan both have specified a
  16348.  national character profile.
  16349.  
  16350.  
  16351.  6.2.1  Relationships Between This Guide and Profiles
  16352.  
  16353.  Key to the understanding of profiles is a discussion of the relationships
  16354.  that exist among profiles, this guide, and the base standards.
  16355.  
  16356.  
  16357.  
  16358.  
  16359.               Copyright (c) 1991 IEEE.  All rights reserved.
  16360.       This is an unapproved IEEE Standards Draft, subject to change.
  16361.  
  16362.  
  16363.  
  16364.  
  16365.  228                                                            6 Profiles
  16366.  
  16367.  
  16368.  
  16369.  
  16370.  
  16371.  
  16372.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  16373.  
  16374.  There exist many thousands of base standards, each addressing a
  16375.  particular, usually narrowly scoped, area of application portability or
  16376.  interoperability.  Many of the base standards, developed over the years,
  16377.  are simultaneously narrow in scope (for example, a C binding of SQL), but
  16378.  broadly applicable (for example, applicable to operating systems that      e
  16379.  comply with POSIX specifications and those that do not.)                   e
  16380.  
  16381.  The base standards listed in 1.2 form the basis of the POSIX Open System
  16382.  Environment.  The list is comprehensive, in that its coverage is broad
  16383.  enough to cover most modern day application development, and the base
  16384.  standards selected have been determined to be consistent with
  16385.  POSIX.1 {2}.
  16386.  
  16387.  While this guide does not list all base standards, it is still a large
  16388.  list, and in fact the list contains base standards that might not be
  16389.  consistent with each other (choose any two standards from the POSIX OSE
  16390.  and they might not be consistent with each other.)  The process of
  16391.  profile writing addresses this.
  16392.  
  16393.  The profile writer reduces even further the list of base standards to
  16394.  just the (relatively) few that are needed to provide portability and
  16395.  interoperability in a given functional area.  In the process, the profile
  16396.  writer grapples with the coherence of the selected base standards by
  16397.  choosing only those that will work together to get the particular job
  16398.  done.  Profile writers should also deal with _h_a_r_m_o_n_i_z_a_t_i_o_n,3) which means
  16399.  making the profiles consistent with each other where they overlap.  This
  16400.  can often be done among profiles even where the functional areas served
  16401.  differ greatly.  Procurements specifying two profiles that have been
  16402.  harmonized by their authors have the benefit of knowing that the two will
  16403.  not conflict with each other.
  16404.  
  16405.  By specifying compliance to a particular profile in a procurement, a
  16406.  consumer easily references a set of multiple base standards that have
  16407.  been determined to:  serve a particular purpose and work together.         e
  16408.  
  16409.  The benefits and relationships do not end here, however.  Since profiles
  16410.  can be constructed to reference profiles as well as base standards,
  16411.  future profile writing will be even easier.
  16412.  NOTE:  An analogy is in the construction of electronic equipment such as
  16413.  computers.  The basic building blocks are ``components,'' such as memory
  16414.  chips and capacitors, which can be fabricated into larger building blocks
  16415.  such as printed circuit boards, which can be fabricated (with other
  16416.  
  16417.  
  16418.  __________
  16419.   3) This should not be confused with _i_n_t_e_r_n_a_t_i_o_n_a_l _h_a_r_m_o_n_i_z_a_t_i_o_n, which    e
  16420.      refers to a specific process that must be followed in the approval     e
  16421.      process for International Standardized Profiles (ISPs).                e
  16422.  
  16423.  
  16424.  
  16425.               Copyright (c) 1991 IEEE.  All rights reserved.
  16426.       This is an unapproved IEEE Standards Draft, subject to change.
  16427.  
  16428.  
  16429.  
  16430.  
  16431.  6.2 Profile Concepts                                                  229
  16432.  
  16433.  
  16434.  
  16435.  
  16436.  
  16437.  
  16438.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  16439.  
  16440.  components or printed circuit boards) into larger building blocks, such
  16441.  as standalone computers, which can be fabricated into larger building
  16442.  blocks such as department wide networks of computers, etc.  Likewise, a
  16443.  few base standards (the basic building blocks), can be gathered together
  16444.  into ``component'' profiles, which can then be gathered together (with
  16445.  other base standards or component profiles) into larger ``platform''
  16446.  profiles, which can be gathered together into larger ``application area''
  16447.  profiles.  (See 6.3.3.5.)
  16448.  
  16449.  The development of profiles from the primary building blocks (base
  16450.  standards) results in larger building blocks (profiles) that can then be
  16451.  incorporated into future profiles and also into future versions of this
  16452.  guide.
  16453.  
  16454.  _T_h_e__I_m_p_o_r_t_a_n_c_e__O_f__P_r_o_f_i_l_e_s
  16455.  
  16456.  Profiles are important for a number of reasons:
  16457.  
  16458.      - Profiles select one or more base standards or profiles and specify
  16459.        options and parameters within these.  This provides a clear
  16460.        statement of specifications that describe the standards for the
  16461.        target functional objective(s).
  16462.  
  16463.      - Profiles include information about the relationship between the
  16464.        standards included (i.e., coherency is an objective).
  16465.  
  16466.      - Profiles are a clear method of communication about the specific
  16467.        standards needed for an application domain and can be used in
  16468.        procurement, in conformance testing, and as a target for
  16469.        applications development.
  16470.  
  16471.  
  16472.  
  16473.  6.3  Guidance to Profile Writers
  16474.  
  16475.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _B_o_b _G_a_m_b_r_e_l
  16476.  
  16477.  This clause expands the concept of profiling in the manner needed by
  16478.  profile writers and provides detailed guidance to those writers.  It
  16479.  includes a description of the basis for this guidance, expands on the
  16480.  purposes served by profiles, and finishes with more detailed guidance
  16481.  specifically aimed at those writing profiles.
  16482.  
  16483.  Using this guide as a basis, profile writers can develop their own
  16484.  informal profiles, suited to their own needs, or formal standards bodies
  16485.  can develop formal, balloted profiles.  This clause details the
  16486.  requirements that should be met by developers of profiles whether they
  16487.  are POSIX SPs, standardized profiles, or less formal profiles.
  16488.  Standardized profiles are formal profiles that meet the requirements of a
  16489.  
  16490.  
  16491.               Copyright (c) 1991 IEEE.  All rights reserved.
  16492.       This is an unapproved IEEE Standards Draft, subject to change.
  16493.  
  16494.  
  16495.  
  16496.  
  16497.  230                                                            6 Profiles
  16498.  
  16499.  
  16500.  
  16501.  
  16502.  
  16503.  
  16504.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  16505.  
  16506.  sponsoring standards body.  Standardized profiles that also meet the
  16507.  requirements for POSIX-based profiles (rules established by IEEE) are
  16508.  called POSIX standardized profiles (POSIX SPs.)  For more information
  16509.  about writing POSIX SPs, see Annex A.
  16510.  
  16511.  _N_o_t_e _t_o _r_e_v_i_e_w_e_r_s:  _A_n_n_e_x _A _h_a_s _i_m_p_o_r_t_a_n_t _i_n_f_o_r_m_a_t_i_o_n _i_n _r_e_l_a_t_i_o_n _t_o _t_h_i_s
  16512.  _s_e_c_t_i_o_n _t_h_a_t _s_h_o_u_l_d _b_e _r_e_v_i_e_w_e_d.
  16513.  
  16514.  
  16515.  6.3.1  Basis for This Guidance
  16516.  
  16517.  Many of the ideas and concepts for profiling described in this section
  16518.  derive from the work of ISO/IEC JTC 1 SGFS as documented in ISO/IEC TR
  16519.  10000-1.  Some items specified in that document that are not covered here
  16520.  include:
  16521.  
  16522.      - International standardization considerations
  16523.  
  16524.      - Conformance issues
  16525.  
  16526.      - Processes and procedures
  16527.  
  16528.      - Maintenance
  16529.  
  16530.      - Taxonomy
  16531.  
  16532.  Additionally, some consideration was given in this guidance above and
  16533.  beyond that given in ISO/IEC TR 10000:
  16534.  
  16535.      - Standardized profiles and POSIX standardized profiles as a
  16536.        conceptual extension to International Standardized Profiles (ISP).
  16537.  
  16538.      - IEEE basis, not ISO basis, for formatting rules; see Annex A.
  16539.  
  16540.  Writers of profiles following the guidance of this clause should refer to
  16541.  Annex A if they intend to propose IEEE acceptance as a POSIX SP and to
  16542.  ISO/IEC TR 10000 if they intend to propose acceptance as an ISP.
  16543.  
  16544.  
  16545.  6.3.2  Purpose of Profiles
  16546.  
  16547.  Profiles define combinations of base standards and profiles for the
  16548.  purpose of:
  16549.  
  16550.      - Identifying the base standards, together with appropriate classes,
  16551.        subsets, options, and parameters, that are necessary to accomplish
  16552.        identified functions for purposes such as interoperability and
  16553.        portability.
  16554.  
  16555.  
  16556.  
  16557.               Copyright (c) 1991 IEEE.  All rights reserved.
  16558.       This is an unapproved IEEE Standards Draft, subject to change.
  16559.  
  16560.  
  16561.  
  16562.  
  16563.  6.3 Guidance to Profile Writers                                       231
  16564.  
  16565.  
  16566.  
  16567.  
  16568.  
  16569.  
  16570.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  16571.  
  16572.      - Providing a system of referencing the various uses of base
  16573.        standards that is meaningful to both users and suppliers
  16574.  
  16575.      - Enhancing the availability for procurement of consistent
  16576.        implementations of functionally defined groups of base standards
  16577.        that are expected to be the major components of real application
  16578.        systems
  16579.  
  16580.      - Promoting uniformity in the development of conformance tests for
  16581.        systems that implement the functions associated with the profiles
  16582.  
  16583.  
  16584.  6.3.3  Detailed Guidance to Profile Writers
  16585.  
  16586.  6.3.3.1  The Relationship to Base Standards
  16587.  
  16588.  Base standards specify procedures and formats that facilitate application
  16589.  portability and interoperability.  They provide options, anticipating the
  16590.  needs of a variety of applications and taking into account different
  16591.  capabilities of real systems and networks.
  16592.  
  16593.  Profiles further promote portability and interoperability by defining how
  16594.  to use a combination of base standards for a given function or
  16595.  application area.  Profiles, by definition, do not define new application
  16596.  interfaces.
  16597.  
  16598.  In addition to the selection of base standards, a choice may be made of
  16599.  permitted options for each base standard and of suitable values for
  16600.  parameters left unspecified in the base standard.
  16601.  
  16602.  Profiles should not contradict base standards, but should make specific
  16603.  choices where options and ranges of values are available.  Profiles must
  16604.  include all of the items made ``mandatory'' by the standard.  The choice
  16605.  of the base standard options should be restricted so as to maximize the
  16606.  probability of interworking between systems implementing different
  16607.  selections of such profile options, consistent with achieving the
  16608.  objectives of the profile.
  16609.  
  16610.  A profile makes explicit the relationships between a set of base
  16611.  standards used together (relationships that are implicit in the
  16612.  definitions of the Base Documents themselves) and may also specify
  16613.  particular details of each base standard being used.
  16614.  
  16615.  A profile may contain conformance requirements that are more specific and
  16616.  limited in scope than those of the base standards to which it refers.
  16617.  While the capabilities and behavior specified in a profile will always be
  16618.  valid in terms of the Base Documents, a profile may exclude some valid
  16619.  optional capabilities and optional behavior permitted in those base
  16620.  standards.
  16621.  
  16622.  
  16623.               Copyright (c) 1991 IEEE.  All rights reserved.
  16624.       This is an unapproved IEEE Standards Draft, subject to change.
  16625.  
  16626.  
  16627.  
  16628.  
  16629.  232                                                            6 Profiles
  16630.  
  16631.  
  16632.  
  16633.  
  16634.  
  16635.  
  16636.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  16637.  
  16638.  Thus, conformance to a profile implies, by definition, conformance to the
  16639.  set of base standards that it references.  However, conformance to that
  16640.  set of Base Documents does not necessarily imply conformance to the
  16641.  profile.
  16642.  
  16643.  6.3.3.2  Main Elements of a Profile Definition Document
  16644.  
  16645.  The definition of a profile should comprise the following elements:
  16646.  
  16647.      - A concise definition of the scope of the function for which the
  16648.        profile is created and of its purpose
  16649.  
  16650.      - Reference to a set of base standards and other profiles, including
  16651.        precise identification of the actual texts of the base standards
  16652.        and profiles being used and of any approved amendments and
  16653.        technical errata, conformance to which is identified as potentially
  16654.        having an impact on achieving portability and interoperation using
  16655.        the profile
  16656.  
  16657.      - Specifications of the application of each referenced base standard
  16658.        and profile, covering recommendations on the choice of classes or
  16659.        subsets and on the selection of options, ranges of parameter
  16660.        values, etc.
  16661.  
  16662.      - A statement defining the requirements to be observed by systems
  16663.        claiming conformance to this profile, including any remaining
  16664.        permitted options of the referenced base standards and profiles,
  16665.        which thus become options of this profile
  16666.  
  16667.  Systems that interoperate can perform different but complementary roles
  16668.  (e.g., an initiator-responder or a master-slave relationship).  In such a
  16669.  situation the profile should identify the separate roles that may be
  16670.  adopted by a system, and these should be stated as either mandatory
  16671.  requirements or options of the profile, as appropriate.
  16672.  
  16673.  6.3.3.3  Profile Objectives
  16674.  
  16675.  _C_o_m_p_l_e_t_e_n_e_s_s
  16676.  
  16677.  A profile should be complete with respect to its functionality
  16678.  objectives.  This may well be an iterative process, since the
  16679.  understanding of the requirements and standards will evolve.
  16680.  Completeness means that all areas where standards should be applied have
  16681.  been identified and the requirements defined.  Where standards exist,
  16682.  they have been included, and the options within those standards have been
  16683.  addressed.  Where standards do not exist, but are needed, this has been
  16684.  documented in the profile.
  16685.  
  16686.  
  16687.  
  16688.  
  16689.               Copyright (c) 1991 IEEE.  All rights reserved.
  16690.       This is an unapproved IEEE Standards Draft, subject to change.
  16691.  
  16692.  
  16693.  
  16694.  
  16695.  6.3 Guidance to Profile Writers                                       233
  16696.  
  16697.  
  16698.  
  16699.  
  16700.  
  16701.  
  16702.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  16703.  
  16704.  It may be appropriate to document (probably in a nonnormative appendix)
  16705.  specifications and alternatives available in areas where standards have
  16706.  not been defined.  The meaning of this concept will be relative to the
  16707.  forum for acceptance of the profile.  If the profile is targeted at ISO
  16708.  acceptance, then ISO DIS and IS standards should be the reference point,
  16709.  where as a US Government profile might be focused on FIPS and ANSI
  16710.  standards.  Within private industry, consortium and even vendor specific
  16711.  specifications could be incorporated, keeping these as examples and not
  16712.  explicit requirements, which will simplify harmonization with formal
  16713.  standards as they emerge.  Where standardized profiles are being
  16714.  developed and gaps are identified, the profile writer should identify the
  16715.  requirements that are not satisfied by a standard.  If there is a
  16716.  preliminary specification available that addresses many of the
  16717.  requirements, that specification should be referred to informatively.
  16718.  
  16719.  _C_l_e_a_r__C_o_m_m_u_n_i_c_a_t_i_o_n_s
  16720.  
  16721.  A key objective for the profile is clear communications between the
  16722.  affected parties.  Users, software developers, and platform suppliers all
  16723.  need to have the same terms and specifications.  The application software
  16724.  developers and system vendors need a common set of specifications to
  16725.  target for their development efforts.
  16726.  
  16727.  _H_a_r_m_o_n_i_z_a_t_i_o_n
  16728.  
  16729.  Harmonization4) means making the profiles consistent with each other
  16730.  where they overlap.  This can often be done among profiles even where the
  16731.  functional areas served differ greatly.  This assures that the maximum
  16732.  practical agreement exists between different profiles, maximizing the
  16733.  implementations of that common ground.
  16734.  
  16735.  _V_a_l_i_d_a_t_i_o_n
  16736.  
  16737.  A profile addresses validation in two different ways.
  16738.  
  16739.  Firstly, by selecting options and parameters within the profile,
  16740.  validation is potentially made simpler.
  16741.  
  16742.  Secondly, by including more than one base standard, validation
  16743.  potentially becomes more difficult.  Now validation extends beyond just
  16744.  insuring a single standard is being complied with into the area of
  16745.  insuring that the interactions between and among multiple base standards
  16746.  is also being complied with.
  16747.  
  16748.  
  16749.  
  16750.  
  16751.  
  16752.  
  16753.  
  16754.  
  16755.               Copyright (c) 1991 IEEE.  All rights reserved.
  16756.       This is an unapproved IEEE Standards Draft, subject to change.
  16757.  
  16758.  
  16759.  
  16760.  
  16761.  234                                                            6 Profiles
  16762.  
  16763.  
  16764.  
  16765.  
  16766.  
  16767.  
  16768.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  16769.  
  16770.  _C_o_h_e_r_e_n_c_e
  16771.  
  16772.  The simple selection of a group of standards does not assure that they
  16773.  will work together on a platform in a predictable way.  A profile should
  16774.  contain a matrix of all standard components compared to each other and
  16775.  state what relationship exists between them.  A profile may be coherent
  16776.  if it states that between two standards no relationship needs to exist,
  16777.  that none shall exist, or that a specified relation shall exist.  Not to
  16778.  speak to an intersection in the matrix would indicate that the issue of
  16779.  coherence has not been addressed.
  16780.  
  16781.  _G_a_p__I_d_e_n_t_i_f_i_c_a_t_i_o_n
  16782.  
  16783.  In the process of developing profiles, there may be gaps in coverage by
  16784.  standards that become apparent.  These may exist in terms of the
  16785.  characteristics available with one standard that need to be made
  16786.  available from another, or missing standards, or additional functionality
  16787.  that is needed for a specific applications activity.  So, an additional
  16788.  objective for a profile effort is to document the requirements for such
  16789.  additional work and forward it to the appropriate standards effort.
  16790.  Profile groups in industry should consider providing expertise to the
  16791.  associated standards groups to assure that the resulting standards meet
  16792.  the needs of that applications area.
  16793.  
  16794.  6.3.3.4  Methods for Developing Profiles                                   e
  16795.  
  16796.  _T_o _B_e _D_e_t_e_r_m_i_n_e_d.                                                          e
  16797.  
  16798.  6.3.3.5  Types of Profiles
  16799.  
  16800.  Three different types of profiles have been, or are being, defined by the
  16801.  procedures described above:
  16802.  
  16803.      - Component Profiles
  16804.  
  16805.      - Application Area Profiles
  16806.  
  16807.      - Platform Profiles
  16808.  
  16809.  A Component profile is mostly a subset of a single standard.  The profile
  16810.  developers specify mandatory options for a specific domain, options that
  16811.  are not desirable for that domain, gaps in that parent standard, and, if
  16812.  necessary, specifications to fill that gap.  Examples of such profiles
  16813.  are MAP, TOP, and GOSIP profiles and possibly the POSIX.13 embedded
  16814.  
  16815.  
  16816.  
  16817.  
  16818.  
  16819.  
  16820.  
  16821.               Copyright (c) 1991 IEEE.  All rights reserved.
  16822.       This is an unapproved IEEE Standards Draft, subject to change.
  16823.  
  16824.  
  16825.  
  16826.  
  16827.  6.3 Guidance to Profile Writers                                       235
  16828.  
  16829.  
  16830.  
  16831.  
  16832.  
  16833.  
  16834.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  16835.  
  16836.  realtime POSIX profile if it continues to be based exclusively on
  16837.  functions chosen from the POSIX.4 realtime standard.
  16838.  
  16839.  An Application Area Profile is created from multiple standards that
  16840.  specify multiple, diverse types of functionality needed for a particular
  16841.  application area (e.g., database, networking, graphics, operating
  16842.  system).  The application area profile developers specify all the diverse
  16843.  standards necessary for the application area in question.  Within each
  16844.  standard, they identify mandatory options, functions and options that are
  16845.  not needed, gaps in the standards, and, if necessary, specifications to
  16846.  fill the gaps.  Examples of application area profiles are the POSIX.10
  16847.  supercomputing and POSIX.11 transaction processing profiles.
  16848.  
  16849.  A Platform Profile focuses on the functionality and interfaces needed for
  16850.  a particular type of platform.  The platforms could be traditional
  16851.  platforms (such as time sharing systems) or relatively new or emerging
  16852.  platforms (e.g., workstations, personal computers, or symmetric
  16853.  multiprocessing systems).  A platform profile could be created from one
  16854.  or multiple diverse standards.  As with other types of profiles, the
  16855.  profile developers have to specify the standards, options, standards
  16856.  gaps, and if necessary, specifications to fill the gaps.  Examples of
  16857.  platform profiles are the POSIX.18 Platform Profile for Traditional
  16858.  Multiuser UNIX systems and the POSIX.14 Multiprocessing profile.
  16859.  
  16860.  All three types of profiles can be seen in the next section.
  16861.  
  16862.  
  16863.  
  16864.  
  16865.  
  16866.  
  16867.  
  16868.  
  16869.  
  16870.  
  16871.  
  16872.  
  16873.  
  16874.  
  16875.  
  16876.  
  16877.  
  16878.  
  16879.  
  16880.  
  16881.  
  16882.  
  16883.  
  16884.  
  16885.  
  16886.  
  16887.               Copyright (c) 1991 IEEE.  All rights reserved.
  16888.       This is an unapproved IEEE Standards Draft, subject to change.
  16889.  
  16890.  
  16891.  
  16892.  
  16893.  236                                                            6 Profiles
  16894.  
  16895.  
  16896.  
  16897.  
  16898.  
  16899.  
  16900.                                                                P1003.0/D14
  16901.  
  16902.  
  16903.  
  16904.  
  16905.  
  16906.  
  16907.  
  16908.  
  16909.                    Section 7: POSIX SP Profiling Efforts
  16910.  
  16911.  
  16912.  
  16913.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _W_e_n_d_y _R_a_u_c_h
  16914.  
  16915.  
  16916.  
  16917.  7.1  Introduction
  16918.  
  16919.  This section maintains the list of currently known POSIX Standardized
  16920.  Profiles (POSIX SPs).  This list is a factual record of which POSIX SPs
  16921.  exist, or are in preparation, together with a summary description of the
  16922.  scope, scenario, and model for each profile.  These POSIX SPs might be
  16923.  useful as building blocks for other profiles.
  16924.  
  16925.  
  16926.  7.1.1  Approved POSIX Standardized Profiles
  16927.  
  16928.  There are currently no approved POSIX SPs.
  16929.  
  16930.  
  16931.  7.1.2  POSIX Standardized Profiles In-Progress
  16932.  
  16933.  The current efforts to develop POSIX SPs are summarized in Table 7-1.      e
  16934.  
  16935.  
  16936.  
  16937.  7.2  General Purpose POSIX SPs
  16938.  
  16939.  
  16940.  7.2.1  POSIX Platform Environment Profile                                  e
  16941.  
  16942.  
  16943.  
  16944.  
  16945.  
  16946.  
  16947.  
  16948.  
  16949.  
  16950.  
  16951.  
  16952.  
  16953.               Copyright (c) 1991 IEEE.  All rights reserved.
  16954.       This is an unapproved IEEE Standards Draft, subject to change.
  16955.  
  16956.  
  16957.  
  16958.  
  16959.  7.2 General Purpose POSIX SPs                                         237
  16960.  
  16961.  
  16962.  
  16963.  
  16964.  
  16965.  
  16966.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  16967.  
  16968.  
  16969.                     Table 7-1  -  POSIX SPs In Progress
  16970.  __________________________________________________________________________________________________________________________________________________
  16971.     Project
  16972.      Name      Taxonomy            Profile Name                     Profile Type
  16973.  _____________________________________________________________________________________
  16974.  
  16975.  IEEE P1003.10          Supercomputing                        Application area profilee
  16976.  IEEE P1003.11          Transaction Processing                Application area profilee
  16977.  IEEE P1003.13          Realtime, Multipurpose Systems        Application area profilee
  16978.  IEEE P1003.13          Realtime Embedded Control System      Application area profilee
  16979.  IEEE P1003.13          Realtime Intermediate                 Application area profilee
  16980.  IEEE P1003.14          Multiprocessing Application Support   Platform profile
  16981.  IEEE P1003.18 USI-P001 POSIX Platform Environment Profile    Platform profile
  16982.  NOTES:
  16983.  
  16984.      (1)  At this time it is not known whether the three realtime profiles
  16985.           will be contained within a single multipart POSIX SP, or
  16986.           separate single-part POSIX SPs.
  16987.  
  16988.      (2)  While the issue of a taxonomy for POSIX SPs has not been
  16989.           decided, a placeholder has been provided and a proposed
  16990.           taxonomical name for one profile has been listed.
  16991.  
  16992.  __________________________________________________________________________________________________________________________________________________
  16993.  
  16994.  
  16995.  7.2.1.1  Rationale and Overview
  16996.  
  16997.  The POSIX Platform Environment Profile, IEEE POSIX.18, is a platform       e
  16998.  profile based on POSIX.1 {2} and related standards.  It defines the
  16999.  functionality and standards needed for a system that is as similar as
  17000.  possible to the traditional UNIX operating system's interactive,
  17001.  multiuser development and run-time environment.
  17002.  
  17003.  The platform profile is valuable for many users, vendors, programmers,     e
  17004.  and procurement officers who do not have the time or desire to analyze
  17005.  and specify all the individual interfaces for a system they need.  The     e
  17006.  platform profile obviates this analysis by enabling the users to point to  e
  17007.  a single document that specifies exactly what they should order to obtain
  17008.  a system that looks like traditional UNIX systems, except that the POSIX   e
  17009.  platform profile will be totally based on formal standards.                e
  17010.  
  17011.  
  17012.  
  17013.  
  17014.  
  17015.  
  17016.  
  17017.  
  17018.  
  17019.               Copyright (c) 1991 IEEE.  All rights reserved.
  17020.       This is an unapproved IEEE Standards Draft, subject to change.
  17021.  
  17022.  
  17023.  
  17024.  
  17025.  238                                          7 POSIX SP Profiling Efforts
  17026.  
  17027.  
  17028.  
  17029.  
  17030.  
  17031.  
  17032.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  17033.  
  17034.  7.2.1.2  Content of the Platform Environment Profile
  17035.  
  17036.  The POSIX Platform Environment Profile consists of:
  17037.  
  17038.      - ISO/IEC 9945-1, with a selection of options and definitions of       e
  17039.        parameters;                                                          e
  17040.  
  17041.      - All of the POSIX.2 (Shell and Utilities) and, optionally, POSIX.2a   e
  17042.        (User Portability Extension); and                                    e
  17043.  
  17044.      - At least one of the following languages:  ISO C, Ada, or FORTRAN.    e
  17045.  
  17046.  To reflect the goals and intent of the POSIX.18 working group, the POSIX   e
  17047.  platform profile document also commits to specifying additional            e
  17048.  specifications in the future, when those specifications are completed and
  17049.  approved as standards.  These specifications include system
  17050.  administration, secure/trusted systems extensions, realtime facilities,
  17051.  verification testing facilities, Ada and FORTRAN language bindings,
  17052.  graphical user interfaces, and network interface facilities.
  17053.  
  17054.  The POSIX platform profile is expected to be the pioneer Application       e
  17055.  Environment Profile submitted to ISO for international approval.  The
  17056.  concept of Application Environment Profiles and Platform Profiles is new.
  17057.  How ISO handles the international standardization of the POSIX platform    e
  17058.  profile, and the profile issues resolved, will likely set a precedent      e
  17059.  followed in the development of other profile standards.
  17060.  
  17061.  
  17062.  7.2.2  Multiprocessing Systems Platform Profiles
  17063.  
  17064.  7.2.2.1  Rationale and Overview
  17065.  
  17066.  The POSIX Multiprocessing Systems Profile (IEEE POSIX.14) is a platform
  17067.  profile.  Like the POSIX PEP (POSIX.18), the Multiprocessing Systems
  17068.  profile defines the functionality, standards, and options within
  17069.  standards that are needed for development and execution on a
  17070.  multiprocessing platform.
  17071.  
  17072.  The Multiprocessing Systems profile is intended for use by multiprocessor
  17073.  vendors, application developers, users, and system administrators.  It is
  17074.  important because it is designed to support portability of
  17075.  multiprocessing applications, as well as users and system administrators
  17076.  in multiprocessing environments.
  17077.  
  17078.  
  17079.  
  17080.  
  17081.  
  17082.  
  17083.  
  17084.  
  17085.               Copyright (c) 1991 IEEE.  All rights reserved.
  17086.       This is an unapproved IEEE Standards Draft, subject to change.
  17087.  
  17088.  
  17089.  
  17090.  
  17091.  7.2 General Purpose POSIX SPs                                         239
  17092.  
  17093.  
  17094.  
  17095.  
  17096.  
  17097.  
  17098.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  17099.  
  17100.  The Multiprocessing Systems Profile has two major goals.  The first one
  17101.  is to make POSIX safe for multiprocessing.  This goal requires the
  17102.  POSIX.14 working group to identify and address the caveats, problems, and
  17103.  failings of POSIX base standards for multiprocessing platforms.  Examples
  17104.  of these failings range from reentrant-function problems to potential
  17105.  problems with threads.
  17106.  
  17107.  The second goal is to make POSIX useful for multiprocessing.  This goal
  17108.  requires the POSIX.14 working group to ensure that POSIX supports the
  17109.  functionality needed by multiprocessing platforms.  An example of this is
  17110.  ensuring that POSIX has capabilities to allow vendors to parallelize
  17111.  software functions.  In the absence of parallelizing standards, the
  17112.  details of what happens when the same software functions are used on
  17113.  different multiprocessor system vary.
  17114.  
  17115.  7.2.2.2  Content of the Multiprocessing Systems Profile
  17116.  
  17117.  The Multiprocessing Systems platform profile identifies standards,
  17118.  options, and gaps in the standards relevant to multiprocessing.  It also
  17119.  identifies additional requirements not satisfied by existing standards
  17120.  and, in an informative annex, suggests interfaces to extended services
  17121.  that can satisfy some of these requirements.  In addition, the POSIX.14
  17122.  Multiprocessing Systems Group will propose changes and amendments to a
  17123.  variety of relevant standards in order to encourage the specifiers of
  17124.  these standards to add functions and options that accommodate
  17125.  multiprocessing requirements.
  17126.  
  17127.  Standards particularly relevant to the Multiprocessing System Profile
  17128.  include the POSIX Pthreads extension (IEEE POSIX.4a), the supercomputing
  17129.  batch scheduling standard (IEEE POSIX.15), and the supercomputing
  17130.  proposed checkpoint and restart facilities (IEEE POSIX.10).  Since
  17131.  checkpoint and restart facilities will be added to the POSIX.1 {2}
  17132.  standard, POSIX.1 {2} is also of concern to the Multiprocessing Profile.
  17133.  
  17134.  The Multiprocessing Systems profile will specify both general-purpose-
  17135.  computing and multiprocessor-specific standards.  General-purpose
  17136.  standards planned or under consideration for the Multiprocessing Systems
  17137.  profile include:
  17138.  
  17139.      - The IEEE POSIX.1 core POSIX system, POSIX.2 POSIX Shell and
  17140.        Utilities, and POSIX.2a User Portability Extension;
  17141.  
  17142.      - The IEEE POSIX.4 realtime extension;
  17143.  
  17144.  
  17145.  
  17146.  
  17147.  
  17148.  
  17149.  
  17150.  
  17151.               Copyright (c) 1991 IEEE.  All rights reserved.
  17152.       This is an unapproved IEEE Standards Draft, subject to change.
  17153.  
  17154.  
  17155.  
  17156.  
  17157.  240                                          7 POSIX SP Profiling Efforts
  17158.  
  17159.  
  17160.  
  17161.  
  17162.  
  17163.  
  17164.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  17165.  
  17166.      - The IEEE POSIX.4a:  POSIX Pthreads extension;
  17167.  
  17168.      - The IEEE POSIX.6 POSIX security standard and POSIX.7 system
  17169.        administration standard;
  17170.  
  17171.      - The Ada language bindings (IEEE POSIX.5) and FORTRAN language
  17172.        bindings (IEEE POSIX.9) to POSIX;
  17173.  
  17174.      - The IEEE POSIX.10 Supercomputing Profile, POSIX.11 Transaction
  17175.        Processing Profile, and POSIX.13 Realtime Applications Profiles.
  17176.  
  17177.  As other standards emerge, they too will be incorporated in the
  17178.  Multiprocessing Systems profile.  An annex of this document will deal
  17179.  with, and list, relevant emerging standards to provide an idea of the
  17180.  Multiprocessing Systems profile's direction.
  17181.  
  17182.  Multiprocessing-specific requirements identified by the POSIX.14
  17183.  Multiprocessing working group include:
  17184.  
  17185.      - System administration tools for multiprocessors;
  17186.  
  17187.      - Parallelizing compilers;
  17188.  
  17189.      - Explicit parallelism;
  17190.  
  17191.      - Threads;
  17192.  
  17193.      - Thread-safe libraries;
  17194.  
  17195.      - Message-passing IPC;
  17196.  
  17197.      - Parallel utilities (e.g., find, grep, make, etc.);
  17198.  
  17199.      - Scheduler controls;
  17200.  
  17201.      - Processor allocation:  mandatory/advisory;
  17202.  
  17203.      - Processor binding;
  17204.  
  17205.      - Degree of symmetry:  I/O, computation, memory.
  17206.  
  17207.  Standards will be needed for many of these requirements.  Many of these
  17208.  requirements will, therefore, become the subject of a POSIX.14 working
  17209.  group proposal for a new standardized function or an option in other
  17210.  
  17211.  
  17212.  
  17213.  
  17214.  
  17215.  
  17216.  
  17217.               Copyright (c) 1991 IEEE.  All rights reserved.
  17218.       This is an unapproved IEEE Standards Draft, subject to change.
  17219.  
  17220.  
  17221.  
  17222.  
  17223.  7.2 General Purpose POSIX SPs                                         241
  17224.  
  17225.  
  17226.  
  17227.  
  17228.  
  17229.  
  17230.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  17231.  
  17232.  standards.
  17233.  
  17234.  
  17235.  7.2.3  Supercomputing
  17236.  
  17237.  7.2.3.1  Rationale and Overview
  17238.  
  17239.  The Supercomputing Application Environment Profile (IEEE POSIX.10) is a
  17240.  profile designed to support application and programmer portability in
  17241.  POSIX-based supercomputer environments.  The profile's goal is to allow
  17242.  supercomputer application code to be ported to other sites, reduce the
  17243.  learning curve of users, and encourage production of timely third-party
  17244.  applications.
  17245.  
  17246.  The need exists for such a profile because of the differences between
  17247.  supercomputing environments and traditional application environments.
  17248.  One difference is that supercomputing jobs are computationally intensive,
  17249.  very long running, and very demanding of resources.  Another is that the
  17250.  cost of the supercomputer CPU and many of its peripheral resources is
  17251.  extremely high.
  17252.  
  17253.  Ordinary POSIX standards are not applicable in their entirety to
  17254.  supercomputer environments because the traditional UNIX-based POSIX
  17255.  functions are not adequate to meaningfully manage the use of, and
  17256.  accounting for, a supercomputer or its resources.  Furthermore,
  17257.  supercomputers need much better tape handling, multiprocessing, and other
  17258.  capabilities than POSIX or UNIX specifications presently support.
  17259.  
  17260.  7.2.3.2  Content of the Supercomputing Profile
  17261.  
  17262.  The Supercomputing Application Environment Profile identifies POSIX base
  17263.  standards and other relevant standards that support supercomputing
  17264.  requirements.  Where none exist, the POSIX.10 working group will define
  17265.  the functionality itself, or instigate the formation of a new group to
  17266.  define it.  In addition, the POSIX.10 working group is taking some of the
  17267.  traditional modifications built to allow UNIX systems to run on
  17268.  supercomputers, and making those modifications both consistent across
  17269.  supercomputers and portable to users, system administrators, and
  17270.  applications.
  17271.  
  17272.  Base computing standards specified by the supercomputing profile (or
  17273.  planned for specification when the standards are completed) include:
  17274.  
  17275.  
  17276.  
  17277.  
  17278.  
  17279.  
  17280.  
  17281.  
  17282.  
  17283.               Copyright (c) 1991 IEEE.  All rights reserved.
  17284.       This is an unapproved IEEE Standards Draft, subject to change.
  17285.  
  17286.  
  17287.  
  17288.  
  17289.  242                                          7 POSIX SP Profiling Efforts
  17290.  
  17291.  
  17292.  
  17293.  
  17294.  
  17295.  
  17296.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  17297.  
  17298.      - The IEEE POSIX.1 {2} core POSIX system, POSIX.2 POSIX Shell and
  17299.        Tools, and POSIX.2a User Portability Extensions (and the
  17300.        corresponding FIPS standards);
  17301.  
  17302.      - The IEEE POSIX.4 realtime work (particularly the use of its
  17303.        asynchronous I/O facility);
  17304.  
  17305.      - The IEEE POSIX.6 POSIX security standard and POSIX.7 system
  17306.        administration standard;
  17307.  
  17308.      - Several graphics standards, including ISO GKS, PHIGS, and CGM, ANSI
  17309.        IGES, and the X Consortium's PEX.
  17310.  
  17311.      - X3H2.6 (also called X11) for windowing;
  17312.  
  17313.      - Several programming languages, including ISO, ANSI, and the NIST's
  17314.        FIPS for C, FORTRAN-77, Pascal, Ada, Common LISP, and COBOL.
  17315.  
  17316.      - TCP/IP protocol stacks and network applications (e.g., file
  17317.        transfer and messaging) now and OSI in the long-term;
  17318.  
  17319.      - The IEEE POSIX.8 Transparent File Access standard for distributed
  17320.        file management;
  17321.  
  17322.      - The X3T5.5 Remote Procedure Call (RPC).
  17323.  
  17324.  The nonstandardized and nonavailable supercomputing functions identified
  17325.  in the POSIX.10 profile include:
  17326.  
  17327.      - Batch system scheduling, administration, and network definition;
  17328.  
  17329.      - Checkpoint recovery;
  17330.  
  17331.      - A resource manager;
  17332.  
  17333.      - A better tape management facility;
  17334.  
  17335.      - Better mass storage/archiving facilities.
  17336.  
  17337.  There are no existing standards for batch scheduling and administration
  17338.  facilities.  Batch scheduling and administration extensions to POSIX base
  17339.  standards are currently being defined by the IEEE POSIX.15 working group-
  17340.  --a group spawned by the Supercomputing profile working group.
  17341.  
  17342.  
  17343.  
  17344.  
  17345.  
  17346.  
  17347.  
  17348.  
  17349.               Copyright (c) 1991 IEEE.  All rights reserved.
  17350.       This is an unapproved IEEE Standards Draft, subject to change.
  17351.  
  17352.  
  17353.  
  17354.  
  17355.  7.2 General Purpose POSIX SPs                                         243
  17356.  
  17357.  
  17358.  
  17359.  
  17360.  
  17361.  
  17362.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  17363.  
  17364.  To meet recovery and archiving requirements, the POSIX.10 working group
  17365.  defined system interfaces for functions that perform ``checkpoint,''
  17366.  ``restart,'' and better magnetic tape handling (e.g., to rewind a tape
  17367.  under program control).  These interfaces have been submitted to the
  17368.  POSIX.1 working group for inclusion in the next POSIX.1 {2} revision.
  17369.  
  17370.  
  17371.  7.2.4  Transaction Processing
  17372.  
  17373.  7.2.4.1  Rationale and Overview
  17374.  
  17375.  The Transaction Processing Application Environment Profile (IEEE 1003.11)
  17376.  is intended to support the development of portable online transaction
  17377.  processing (OLTP) applications in POSIX environments.  This profile is
  17378.  targeted at application developers and open system services suppliers.
  17379.  It is important because transaction processing is a major area of
  17380.  business for most large computer vendors and it plays a major role in the
  17381.  daily operations of most users.  There are currently no existing POSIX
  17382.  functions that specifically address OLTP needs.
  17383.  
  17384.  7.2.4.2  Content of the Transaction Processing Profile
  17385.  
  17386.  The Transaction Processing profile's goal is to identify the interfaces
  17387.  and standards relevant to OLTP, and optional functions in existing
  17388.  standards that must be made mandatory for OLTP applications.  The profile
  17389.  will specify general-purpose standards, as well as standards unique to
  17390.  OLTP.
  17391.  
  17392.  The Transaction Processing Profile's specifications include or plan the
  17393.  following generic and transaction processing-specific standards:
  17394.  
  17395.      - The ISO/IEC 9945-1: 1990 (POSIX 1003.1) core POSIX system
  17396.        interfaces (including required options, minimum values for certain
  17397.        variables, and particular environment variables needed for OLTP
  17398.        applications);
  17399.  
  17400.      - The IEEE 1003.2 Shell and Utilities' software development utilities
  17401.        option, C language development utilities option, and C language
  17402.        bindings option;
  17403.  
  17404.      - The IEEE 1003.2 getconf utility;
  17405.  
  17406.      - The realtime files and asynchronous input and output features from
  17407.        the IEEE 1003.4 Realtime POSIX Extensions;
  17408.  
  17409.  
  17410.  
  17411.  
  17412.  
  17413.  
  17414.  
  17415.               Copyright (c) 1991 IEEE.  All rights reserved.
  17416.       This is an unapproved IEEE Standards Draft, subject to change.
  17417.  
  17418.  
  17419.  
  17420.  
  17421.  244                                          7 POSIX SP Profiling Efforts
  17422.  
  17423.  
  17424.  
  17425.  
  17426.  
  17427.  
  17428.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  17429.  
  17430.      - The IEEE 1003.6 POSIX security standard;
  17431.  
  17432.      - The ISO/IEC, ANSI, and FIPS C and COBOL programming languages;
  17433.  
  17434.      - TCP/IP networking in the short term and OSI in the long-term;
  17435.  
  17436.      - The X3T5.5 Remote Procedure Call (RPC)
  17437.  
  17438.      - The ISO SQL database language;
  17439.  
  17440.      - The ISO Distributed Transaction Processing 10026.1, .2, and .3 for
  17441.        communication of transaction information.
  17442.  
  17443.  The Transaction Processing profile also identifies extensions needed to
  17444.  existing standards to support distributed transaction processing.
  17445.  Important extensions that need to be defined include those related to the
  17446.  two-phase commit, as well as others related to making RPCs robust.
  17447.  
  17448.  The P1003.11 working group is working with the ISO RPC Group to add
  17449.  transaction semantics to the Networking working group's RPC
  17450.  specifications.  These extensions will be incorporated in the Transaction
  17451.  Processing profile.  Plans are also for the 1003.11 profile to draw on
  17452.  the transaction processing work being produced by the X/Open consortium,
  17453.  particularly on the XA interfaces (the interface between a Transaction
  17454.  Manager and a Resource Manager).
  17455.  
  17456.  
  17457.  7.2.5  Realtime Application Profiles
  17458.  
  17459.  7.2.5.1  Rationale and Overview
  17460.  
  17461.  Different types of realtime applications have different characteristics
  17462.  and diverse requirements.  For example, embedded systems generally do not
  17463.  need the full functionality of an operating system, nor do they require
  17464.  all the IEEE POSIX.4 realtime extensions.  Compliance with the entire
  17465.  realtime standard and/or POSIX operating system interfaces could reduce
  17466.  the embedded system's responsiveness and increase the amount of memory
  17467.  needed for systems that need to be embedded in limited space.  High-end
  17468.  realtime systems, on the other hand, have softer realtime requirements.
  17469.  However, they need the full operating system and realtime functionality.
  17470.  
  17471.  Therefore, the POSIX.13 working group was formed to define profiles for
  17472.  various types of realtime applications.  The realtime profiles defined
  17473.  will determine which interfaces must be implemented for a given type of
  17474.  
  17475.  
  17476.  
  17477.  
  17478.  
  17479.  
  17480.  
  17481.               Copyright (c) 1991 IEEE.  All rights reserved.
  17482.       This is an unapproved IEEE Standards Draft, subject to change.
  17483.  
  17484.  
  17485.  
  17486.  
  17487.  7.2 General Purpose POSIX SPs                                         245
  17488.  
  17489.  
  17490.  
  17491.  
  17492.  
  17493.  
  17494.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  17495.  
  17496.  realtime system to claim conformance to the realtime standard.
  17497.  
  17498.  7.2.5.2  Targeted Realtime Application Profiles                            e
  17499.  
  17500.  The POSIX.13 working group is defining profiles to address several types   e
  17501.  of realtime applications.  These include:                                  e
  17502.  
  17503.      - Low-end, embedded systems (often known as ``hard'' realtime
  17504.        systems);
  17505.  
  17506.      - Mid-range realtime systems with medium-level critical realtime
  17507.        constraints;
  17508.  
  17509.      - High-end realtime systems.
  17510.  
  17511.  7.2.5.2.1  Embedded Realtime Systems                                       e
  17512.  
  17513.  Embedded realtime systems are typically standalone systems used for robot
  17514.  controllers, automated systems controllers, instrumentation, high-speed
  17515.  data acquisition, satellite subsystem control, flight control, some        e
  17516.  process control, and some testing.  Time-critical responsiveness is a key  e
  17517.  requirement of embedded systems.  In the absence of a standard, the
  17518.  realtime functionality required for embedded systems is generally
  17519.  provided by a proprietary realtime kernel or a simple home-grown monitor
  17520.  using memory mapped I/O.
  17521.  
  17522.  Since low-end embedded systems need only minimal functionality, the
  17523.  POSIX.13 working group will select a relatively small number of POSIX.4
  17524.  and POSIX.1 {2} functions that will be required for portable realtime
  17525.  embedded systems.  These functions will be selected for several types of   e
  17526.  embedded applications.                                                     e
  17527.  
  17528.  One type of embedded application is a minimal system, usually buried       e
  17529.  deeply in the overall system electronics.  Such minimal applications have  e
  17530.  no requirements for a file system, multiple processes, or I/O via          e
  17531.  specific device drivers.  The minimal realtime profile, however, will      e
  17532.  specify the POSIX.4a threads extension to support multiple flows of        e
  17533.  control.                                                                   e
  17534.  
  17535.  The second type of embedded application is often used in control systems.  e
  17536.  Realtime controller applications require a file system and threads, but    e
  17537.  not multiple processes.                                                    e
  17538.  
  17539.  
  17540.  
  17541.  
  17542.  
  17543.  
  17544.  
  17545.  
  17546.  
  17547.               Copyright (c) 1991 IEEE.  All rights reserved.
  17548.       This is an unapproved IEEE Standards Draft, subject to change.
  17549.  
  17550.  
  17551.  
  17552.  
  17553.  246                                          7 POSIX SP Profiling Efforts
  17554.  
  17555.  
  17556.  
  17557.  
  17558.  
  17559.  
  17560.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  17561.  
  17562.  7.2.5.2.2  Mid-Range Realtime Applications                                 e
  17563.  
  17564.  Mid-range or intermediate-level realtime profiles are targeted at          e
  17565.  compute-oriented applications that are typically used in avionics, radar   e
  17566.  systems, submarines, and medical imaging equipment, as well as             e
  17567.  controllers that control a group of robots or a subsystem on the factory   e
  17568.  floor.  These applications tend to run on platforms that are dedicated to  e
  17569.  a single application set or mission mode.                                  e
  17570.  
  17571.  The design complexity of such dedicated realtime applications varies from  e
  17572.  simple to complex to accommodate a range of requirements.  Such            e
  17573.  requirements may include sophisticated signal processing capabilities,     e
  17574.  but do not necessarily include a file system.  A profile that satisfies    e
  17575.  these requirements would likely specify most of the POSIX.4 functionality  e
  17576.  (except for file system facilities), along with relevant options from the  e
  17577.  POSIX.4 and POSIX.1 {2} standards and the POSIX.4a threads extension.      e
  17578.  
  17579.  7.2.5.2.3  High-End Realtime Applications                                  e
  17580.  
  17581.  High-end realtime applications are applicable to complex, multipurpose     e
  17582.  realtime systems.  Such multipurpose realtime systems typically are used   e
  17583.  in military command and control, in space station control systems, in      e
  17584.  systems that control robot or factory subsystems, as the operating system  e
  17585.  for high-end simulation systems, and at high-functionality realtime        e
  17586.  application that are paced by operator interaction.                        e
  17587.  
  17588.  The current realtime, multipurpose profile is geared to full-function      e
  17589.  realtime systems such as simulation applications and embodies most of the  e
  17590.  existing practice in the simulator world.  Since simulation systems have   e
  17591.  a greater design complexity than embedded or mid-range systems, and need   e
  17592.  much greater functionality, the multipurpose realtime profile will most    e
  17593.  likely require all or most of the POSIX.4 and POSIX.1 {2} standards.       e
  17594.  This profile does not require threads.  It does, however, specify the X11  e
  17595.  window system as the basis for a human-computer interface.                 e
  17596.  
  17597.  
  17598.  
  17599.  
  17600.  
  17601.  
  17602.  
  17603.  
  17604.  
  17605.  
  17606.  
  17607.  
  17608.  
  17609.  
  17610.  
  17611.  
  17612.  
  17613.               Copyright (c) 1991 IEEE.  All rights reserved.
  17614.       This is an unapproved IEEE Standards Draft, subject to change.
  17615.  
  17616.  
  17617.  
  17618.  
  17619.  7.2 General Purpose POSIX SPs                                         247
  17620.  
  17621.  
  17622.  
  17623.  
  17624.  
  17625.  
  17626.  
  17627.  
  17628.  
  17629.  
  17630.  
  17631.  
  17632.  
  17633.  
  17634.  
  17635.  
  17636.  
  17637.  
  17638.  
  17639.  
  17640.  
  17641.  
  17642.  
  17643.  
  17644.  
  17645.  
  17646.  
  17647.  
  17648.  
  17649.  
  17650.  
  17651.  
  17652.  
  17653.  
  17654.  
  17655.  
  17656.  
  17657.  
  17658.  
  17659.  
  17660.  
  17661.  
  17662.  
  17663.  
  17664.  
  17665.  
  17666.  
  17667.  
  17668.  
  17669.  
  17670.  
  17671.  __________
  17672.   4) Refer to the earlier footnote on _i_n_t_e_r_n_a_t_i_o_n_a_l _h_a_r_m_o_n_i_z_a_t_i_o_n.          e
  17673.  
  17674.  
  17675.  
  17676.  
  17677.  
  17678.  
  17679.  
  17680.  
  17681.  
  17682.  
  17683.  
  17684.  
  17685.  
  17686.  
  17687.  
  17688.  
  17689.  
  17690.  
  17691.  
  17692.                                                                P1003.0/D14
  17693.  
  17694.  
  17695.  
  17696.  
  17697.  
  17698.  
  17699.                                   Annex A
  17700.                                (informative)
  17701.                 Considerations for Developers of POSIX SPs
  17702.  
  17703.  
  17704.  
  17705.  
  17706.  A.1  Introduction
  17707.  
  17708.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _B_o_b _G_a_m_b_r_e_l
  17709.  
  17710.  The contents of this Annex are illustrative of rules that might be
  17711.  developed for the submitters of POSIX Standardized Profiles (SPs).
  17712.  
  17713.  This Annex contains modifications and comments relating to the use of the
  17714.  _T_C_O_S-_S_S_C _P_O_S_I_X _S_t_a_n_d_a_r_d_s _S_t_y_l_e _G_u_i_d_e {B6} in POSIX SPs.
  17715.  
  17716.  
  17717.  
  17718.  A.2  Scope
  17719.  
  17720.  While Section 6 addressed profiles generally, this Annex addresses
  17721.  considerations for developers of formal POSIX Standardized Profiles.  It
  17722.  builds directly upon the concepts, principles, and guidance of Section 6.
  17723.  
  17724.  _N_o_t_e _t_o _r_e_v_i_e_w_e_r_s:  _T_h_i_s _A_n_n_e_x _i_s _n_o_t _c_o_m_p_l_e_t_e, _i_n _t_h_a_t _m_o_r_e _w_o_r_k _i_s
  17725.  _r_e_q_u_i_r_e_d _i_n _t_h_e _d_o_m_a_i_n _o_f _P_O_S_I_X _p_r_o_f_i_l_e_s.
  17726.  
  17727.  _F_u_t_u_r_e _w_o_r_k _i_n _t_h_e _a_r_e_a _o_f _p_r_o_f_i_l_i_n_g _w_i_l_l _b_e _d_o_n_e _b_y _I_E_E_E _a_n_d _t_h_e
  17728.  _s_t_a_n_d_a_r_d_s _c_o_m_m_u_n_i_t_y.  _T_h_i_s _d_o_c_u_m_e_n_t, _a_n_d _t_h_e _g_u_i_d_a_n_c_e _i_t _p_r_o_v_i_d_e_s, _w_i_l_l
  17729.  _b_e _u_p_d_a_t_e_d _a_s _a_p_p_r_o_p_r_i_a_t_e.  _T_h_e _m_a_j_o_r _a_r_e_a_s _e_x_p_e_c_t_e_d _t_o _b_e _a_d_d_r_e_s_s_e_d _a_r_e:
  17730.  
  17731.      - _I_n_t_e_r_n_a_t_i_o_n_a_l _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n _c_o_n_s_i_d_e_r_a_t_i_o_n_s
  17732.  
  17733.      - _C_o_n_f_o_r_m_a_n_c_e _i_s_s_u_e_s
  17734.  
  17735.      - _T_a_x_o_n_o_m_y _o_f _P_O_S_I_X _S_P_s
  17736.  
  17737.      - _R_e_g_i_s_t_r_a_t_i_o_n _o_f _P_O_S_I_X _S_P_s
  17738.  
  17739.      - _D_e_l_e_g_a_t_i_o_n _o_f _a_u_t_h_o_r_i_t_y _t_o _c_a_l_l _s_o_m_e_t_h_i_n_g _a _P_O_S_I_X _S_P (_N_o_t_e:
  17740.        _C_u_r_r_e_n_t_l_y, _t_h_i_s _d_o_c_u_m_e_n_t _d_o_e_s _n_o_t _p_r_o_h_i_b_i_t _a_n_o_t_h_e_r _g_r_o_u_p _b_e_s_i_d_e
  17741.        _I_E_E_E _f_r_o_m _c_a_l_l_i_n_g _t_h_e_i_r _d_o_c_u_m_e_n_t _a _P_O_S_I_X _S_P.)
  17742.  
  17743.  
  17744.  
  17745.               Copyright (c) 1991 IEEE.  All rights reserved.
  17746.       This is an unapproved IEEE Standards Draft, subject to change.
  17747.  
  17748.  
  17749.  
  17750.  
  17751.  A.2 Scope                                                             249
  17752.  
  17753.  
  17754.  
  17755.  
  17756.  
  17757.  
  17758.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  17759.  
  17760.      - _C_l_a_r_i_f_i_c_a_t_i_o_n _o_f _b_a_s_e _s_t_a_n_d_a_r_d_s _r_e_f_e_r_e_n_c_i_n_g _i_s_s_u_e_s _s_u_c_h _a_s
  17761.        _s_u_b_s_e_t_t_i_n_g _a_n_d _t_h_e _h_a_n_d_l_i_n_g _o_f _o_p_t_i_o_n_s
  17762.  
  17763.      - _E_d_i_t_o_r_i_a_l _i_s_s_u_e_s _s_u_c_h _a_s _g_u_i_d_a_n_c_e _o_n _t_h_e _c_o_r_r_e_c_t _l_e_v_e_l _o_f _d_e_t_a_i_l
  17764.  
  17765.      - _A_d_d_i_t_i_o_n_a_l _g_u_i_d_a_n_c_e _o_n _r_e_f_e_r_e_n_c_i_n_g _b_a_s_e _s_t_a_n_d_a_r_d_s _a_n_d ``_s_t_a_n_d_a_r_d_s
  17766.        _i_n _p_r_o_g_r_e_s_s''
  17767.  
  17768.  
  17769.  
  17770.  A.3  The Role of POSIX SPs
  17771.  
  17772.  In 6.3.3.5, a classification scheme was given for profiles in which three
  17773.  different ``types'' were identified.  That scheme is based, essentially,
  17774.  on the scope covered by the profile.  Another useful classification
  17775.  scheme, based on scope and on who develops the profiles, is presented in
  17776.  this annex.
  17777.  
  17778.  Figure A-1 shows these classes of profiles and the relationships between
  17779.  them and base standards.
  17780.  
  17781.  _________________________________________________________________________
  17782.  
  17783.  
  17784.  
  17785.  
  17786.  
  17787.  
  17788.  
  17789.  
  17790.  
  17791.  
  17792.  
  17793.  
  17794.  
  17795.  
  17796.  
  17797.  
  17798.  
  17799.  
  17800.  
  17801.  
  17802.  _________________________________________________________________________
  17803.              Figure A-1  -  Universe of Profiles and Standards
  17804.  
  17805.  
  17806.  Base standards cover a universe of diverse needs.  POSIX base standards
  17807.  (e.g., POSIX.1 {2}, P1003.4, ...) cover a narrower set of needs related
  17808.  to ``POSIX.''  In the figure, the POSIX base standards are shown as a
  17809.  
  17810.  
  17811.               Copyright (c) 1991 IEEE.  All rights reserved.
  17812.       This is an unapproved IEEE Standards Draft, subject to change.
  17813.  
  17814.  
  17815.  
  17816.  
  17817.  250                          A Considerations for Developers of POSIX SPs
  17818.  
  17819.  
  17820.  
  17821.  
  17822.  
  17823.  
  17824.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  17825.  
  17826.  small subset of the larger world of base standards.
  17827.  
  17828.  At the other end of the spectrum, organization-specific (e.g., company-
  17829.  specific) profiles are large in number and range even more widely in
  17830.  their coverage.  (There are many more organizations procuring systems,
  17831.  and effectively writing profiles, than there are committees writing
  17832.  standards.)
  17833.  
  17834.  Industry-specific profiles are based on specific industry needs.  From
  17835.  the point of view of the organization-specific profile writer, industry
  17836.  specific profiles are applicable to many organizations (in the same
  17837.  industry), and hence are possibly not precisely what any specific
  17838.  individual organization needs.  They address the broad consensus of the
  17839.  industry, from which there is usually deviation when you look at
  17840.  individual organizations whose needs range further.
  17841.  
  17842.  Standardized Profiles are formal balloted documents.  POSIX SPs are the
  17843.  subset of standardized profiles that pertain to the POSIX base standards.
  17844.  While not limited to just POSIX base standards, POSIX SPs nonetheless
  17845.  provide a distinctly POSIX-oriented view of the base standards.
  17846.  
  17847.  An organization wishing to procure a ``POSIX'' based system, then, could
  17848.  first develop its own organization-specific profile, which it could base
  17849.  on POSIX-oriented industry-specific profiles (if available), which in
  17850.  turn could be based on POSIX SPs, which of course are based on the
  17851.  various POSIX base standards.
  17852.  
  17853.  POSIX SPs provide an industry-neutral building block for creating
  17854.  industry specific profiles.  The developers of POSIX SPs do not have to
  17855.  have knowledge of any particular industry.  They furthermore help ensure
  17856.  coherence among the many base standards referenced, particularly among
  17857.  the various POSIX base standards.  As such, probably, most POSIX SPs will
  17858.  be created by the IEEE POSIX working groups meeting concurrently with
  17859.  IEEE POSIX base standards working groups.  Meeting concurrently at the
  17860.  same place helps ensure the coherence of the base standards and the
  17861.  harmony among the POSIX SPs.
  17862.  
  17863.  
  17864.  
  17865.  A.4  Special Rules for POSIX SPs
  17866.  
  17867.  While no rules have yet been developed by IEEE for POSIX SPs, the
  17868.  remainder of this annex gives examples of what such rules might say and
  17869.  identifies some issues for which rules might be drafted.
  17870.  
  17871.  The following criteria for calling a profile a POSIX SP were developed
  17872.  according to some general principles that have the aim of giving definite
  17873.  value to the word ``POSIX'' when used with regards to profiles.  The
  17874.  general principles are:
  17875.  
  17876.  
  17877.               Copyright (c) 1991 IEEE.  All rights reserved.
  17878.       This is an unapproved IEEE Standards Draft, subject to change.
  17879.  
  17880.  
  17881.  
  17882.  
  17883.  A.4 Special Rules for POSIX SPs                                       251
  17884.  
  17885.  
  17886.  
  17887.  
  17888.  
  17889.  
  17890.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  17891.  
  17892.      (1)  There is minimum content.  Specifically, a POSIX SP must
  17893.           reference some part of the suite of POSIX base standards.
  17894.           (Which part specifically is contentious.)
  17895.  
  17896.      (2)  The POSIX SP must follow a specific approach to conformance
  17897.           (specifically the P1003.3.1 test methodology.)
  17898.  
  17899.      (3)  The POSIX SP must adhere to the POSIX Reference Model.
  17900.  
  17901.      (4)  There is maximum content; i.e., some consideration must be given
  17902.           to how the POSIX SP goes beyond the POSIX OSE as described in
  17903.           this guide.
  17904.  
  17905.      (5)  Exceptions to the previous principles are expected, requiring a
  17906.           rule-making and enforcement body to make those exception
  17907.           decisions.
  17908.  
  17909.  POSIX SPs are Standardized Profiles that are related to ``POSIX.''  This
  17910.  subclause specifies the rules that need to be followed that distinguish
  17911.  POSIX SPs from ``Non-POSIX SPs''.
  17912.  
  17913.  Each POSIX SP is based on, and shall include, one of the following two
  17914.  base standards sets:
  17915.  
  17916.      (1)  POSIX.1 {2} or POSIX.2 (as verified by the P1003.3 methodology),
  17917.           or
  17918.  
  17919.      (2)  A particular subset of POSIX.1 {2} and P1003.4 that is being
  17920.           specified for a Minimal Realtime profile (as verified by the
  17921.           P1003.3 methodology.)
  17922.  
  17923.  Additionally, each POSIX SP adheres to the structure defined by the POSIX
  17924.  OSE reference model.
  17925.  
  17926.  An approved POSIX SP shall make reference only to base standards
  17927.  identified in this guide (1003.0) as being part of the POSIX OSE.  Two
  17928.  specific exceptions to this general rule are allowed for as described
  17929.  here:
  17930.  
  17931.      (1)  Reference can be made to required base standards that are
  17932.           clearly outside of the scope of the POSIX OSE.  Examples of the
  17933.           functionality that may require the use of this expedient are:
  17934.  
  17935.            - Physical connectors
  17936.  
  17937.            - Electrical characteristics
  17938.  
  17939.            - Safety requirements
  17940.  
  17941.  
  17942.  
  17943.               Copyright (c) 1991 IEEE.  All rights reserved.
  17944.       This is an unapproved IEEE Standards Draft, subject to change.
  17945.  
  17946.  
  17947.  
  17948.  
  17949.  252                          A Considerations for Developers of POSIX SPs
  17950.  
  17951.  
  17952.  
  17953.  
  17954.  
  17955.  
  17956.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  17957.  
  17958.           Such reference to items outside the scope of the POSIX OSE shall
  17959.           be justified on a case-by-case basis.  It shall be accompanied
  17960.           by details of the body responsible for the distribution and
  17961.           maintenance of the referenced base standard.
  17962.  
  17963.      (2)  Reference can be made to required base standards that are being
  17964.           proposed for inclusion in a future version of the guide.
  17965.           Examples of this would be specification of a later version of a
  17966.           base standard that is already included within the POSIX OSE, or
  17967.           of an additional programming language base standard, not yet
  17968.           included within the POSIX OSE.
  17969.  
  17970.           In such cases, the POSIX SP should be identified as a POSIX
  17971.           Preliminary SP and the specific references should be clearly
  17972.           noted and justified on a case by case basis.
  17973.  
  17974.  A POSIX Preliminary Standardized Profile (POSIX Preliminary SP) is a
  17975.  POSIX SP that satisfies all requirements of a POSIX SP except that it is
  17976.  not a subset of the POSIX OSE.  [It therefore contains at least one
  17977.  standard or profile that is outside the POSIX OSE.  It is expected that
  17978.  application would be made to POSIX.0 to include the standard(s) or
  17979.  profile(s) in the POSIX OSE.]
  17980.  
  17981.  A further restriction of POSIX SPs is the necessity to (normatively)
  17982.  reference only standards that are recognized by the IEEE.  This is
  17983.  limited to IEEE and ISO standards.
  17984.  
  17985.  Approval of a POSIX SP shall not change the status of any documents
  17986.  referenced by it.
  17987.  
  17988.  The development of a POSIX SP may indicate the need to modify or to add
  17989.  to the requirements specified in a base standard.  In this case, it is
  17990.  necessary for the POSIX SP developer to liaise with the body responsible
  17991.  for that base standard so that the required changes may be made through
  17992.  established methods such as defect reporting, amendment procedures, or
  17993.  the introduction of new work.
  17994.  
  17995.  
  17996.  
  17997.  A.5  Other Issues
  17998.  
  17999.  A significant number of issues remain to be addressed concerning the
  18000.  management of POSIX SP development.  Some of the issues and the concerns
  18001.  are summarized here.
  18002.  
  18003.  
  18004.  
  18005.  
  18006.  
  18007.  
  18008.  
  18009.               Copyright (c) 1991 IEEE.  All rights reserved.
  18010.       This is an unapproved IEEE Standards Draft, subject to change.
  18011.  
  18012.  
  18013.  
  18014.  
  18015.  A.5 Other Issues                                                      253
  18016.  
  18017.  
  18018.  
  18019.  
  18020.  
  18021.  
  18022.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  18023.  
  18024.  Coherence
  18025.  
  18026.  The insurance of coherence among the many base standards referenced by a
  18027.  profile has been found by profile writers to be an onerous task.  The
  18028.  profile writer's burden could be eased significantly if base standards
  18029.  writers address coherence at the outset.  Specifically, all the P1003.x
  18030.  base standards should be developed to maximize their coherence.  This is
  18031.  seen as a management issue for TCOS-SEC, the sponsoring body of the
  18032.  P1003.x standards.
  18033.  
  18034.  
  18035.  Conformance
  18036.  
  18037.  The development of conformance statements and test methods for profiles
  18038.  is a significant challenge for profile writers.  The challenge is most
  18039.  acute in the area of conformance of standards that are being developed
  18040.  outside of P1003.  A premise for the profile writing rules associated
  18041.  with conformance must be that the profile writers are not really experts
  18042.  in the referenced standards.  Profile writers (especially at this early
  18043.  period in their development) must not be overburdened with untested
  18044.  conformance writing rules.  A possible solution is to create a new
  18045.  project under the auspices of P1003.3 to actually generate new test
  18046.  methods and actually write the necessary assertions for the first
  18047.  profile.  (This approach was used also for the initial POSIX base
  18048.  standard.)
  18049.  
  18050.  
  18051.  Base Standards Working Groups
  18052.  
  18053.  Because profile writers are in some sense the customers of base
  18054.  standards, it is important for base standards writers to address with
  18055.  priority and urgency the gaps identified in the development of POSIX SPs.
  18056.  
  18057.  
  18058.  Scope and Number of POSIX SPs
  18059.  
  18060.  How many different POSIX SPs are appropriate and how broadly ranging
  18061.  should be their scope?  Should POSIX SPs be rather narrowly focused,
  18062.  spanning just a few base standards, or should they address a large number
  18063.  of base standards?
  18064.  
  18065.  
  18066.  Issues Pertaining to Referencing Base Standards
  18067.  
  18068.  Many practical writing issues pertain to referencing, for instance, parts
  18069.  of base standards.  This includes not only referencing options, but even
  18070.  the concept of subsetting, or reducing the functionality of a base
  18071.  standard.  Also an issue is how to reference multiple versions of the
  18072.  same standard (e.g., two different COBOL standards.)
  18073.  
  18074.  
  18075.               Copyright (c) 1991 IEEE.  All rights reserved.
  18076.       This is an unapproved IEEE Standards Draft, subject to change.
  18077.  
  18078.  
  18079.  
  18080.  
  18081.  254                          A Considerations for Developers of POSIX SPs
  18082.  
  18083.  
  18084.  
  18085.  
  18086.  
  18087.  
  18088.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  18089.  
  18090.  POSIX SP Procedures and Rules
  18091.  
  18092.  What does it mean to be a POSIX SP?  Rule making for use of the word
  18093.  ``POSIX'' must address criteria for such use.  Also, many issues remain
  18094.  to be resolved in the area of ballot procedures.  Should IEEE delegate to
  18095.  others the ability to develop POSIX SPs?  If so, should IEEE maintain a
  18096.  registry of such efforts?
  18097.  
  18098.  
  18099.  
  18100.  A.6  Conformance to a POSIX SP
  18101.  
  18102.  A POSIX SP must address test methods for itself.  In the simplest case,
  18103.  testing the base standards referenced is sufficient.  In more complex
  18104.  cases, additional test methods will be necessary.  In the worst case (if
  18105.  a base standard is subsetted, for example), the test methods for the base
  18106.  standards may have to be rewritten or expanded within the POSIX SP.
  18107.  
  18108.  At the same time, P1003.3 will have to consider revisions to the _T_e_s_t
  18109.  _M_e_t_h_o_d_s _f_o_r _M_e_a_s_u_r_i_n_g _C_o_n_f_o_r_m_a_n_c_e _t_o _P_O_S_I_X to address test methods for
  18110.  POSIX SPs (e.g., additional assertion types, minimum requirements for
  18111.  testing POSIX SPs, ...)
  18112.  
  18113.  
  18114.  
  18115.  A.7  Structure of Documentation for POSIX SPs
  18116.  
  18117.  This clause gives specific format and content requirements to profile
  18118.  writers who are developing POSIX SPs.
  18119.  
  18120.  
  18121.  A.7.1  Principles
  18122.  
  18123.  The requirements for content and format of POSIX SPs are based on the
  18124.  following principles:
  18125.  
  18126.      (1)  Profiles shall be directly related to base standards and
  18127.           conformance to profiles shall imply conformance to base
  18128.           standards.
  18129.  
  18130.      (2)  POSIX SPs shall follow the rules for drafting and presentation
  18131.           of POSIX SPs detailed here.
  18132.  
  18133.      (3)  POSIX SPs are intended to be concise documents that do not
  18134.           repeat the text of the base standards.
  18135.  
  18136.      (4)  Profiles making identical use of particular base documents shall
  18137.           be consistent, down to the level of identical wording in the
  18138.           POSIX SPs for identical requirements.
  18139.  
  18140.  
  18141.               Copyright (c) 1991 IEEE.  All rights reserved.
  18142.       This is an unapproved IEEE Standards Draft, subject to change.
  18143.  
  18144.  
  18145.  
  18146.  
  18147.  A.7 Structure of Documentation for POSIX SPs                          255
  18148.  
  18149.  
  18150.  
  18151.  
  18152.  
  18153.  
  18154.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  18155.  
  18156.  A.7.2  Multipart POSIX SPs
  18157.  
  18158.  Many profiles will be documented and published as individual POSIX SPs.
  18159.  However, where close relationships exist between two or more profiles, a
  18160.  more appropriate technique can be used.
  18161.  
  18162.  Common text between related profiles is essential to ensure consistency,
  18163.  portability, and interworking, to avoid unnecessary duplication of text,
  18164.  and to aid writers and reviewers of POSIX SPs.
  18165.  
  18166.  A _s_i_n_g_l_e-_p_a_r_t _P_O_S_I_X _S_P shall not contain the definition of more than one
  18167.  profile.
  18168.  
  18169.  The following rules apply to _m_u_l_t_i_p_a_r_t _P_O_S_I_X _S_P_s:
  18170.  
  18171.      (1)  A multipart POSIX SP shall contain the definition of a complete
  18172.           profile or of a related set of profiles.
  18173.  
  18174.      (2)  A part of a multipart POSIX SP may contain a section of the
  18175.           definition of one or more profiles.
  18176.  
  18177.      (3)  Where a multipart POSIX SP includes more than one profile, the
  18178.           part structure shall permit each profile to be the subject of a
  18179.           separate ballot; i.e., its constituent profiles shall be clearly
  18180.           identifiable, and the multipart structure shall ensure that this
  18181.           can be accomplished.
  18182.  
  18183.      (4)  Wherever possible, the references made from one part to another
  18184.           should be to complete parts.  However, controlled use of one-way
  18185.           references to sections of other parts is permitted in order to
  18186.           obtain a reasonable multipart structure.
  18187.  
  18188.  Because there may also be potential disadvantages from overuse of the
  18189.  multipart POSIX SP capability, such as difficulties in gaining approval
  18190.  for a complex linked set of parts, or reduction of the content of a part
  18191.  to a small amount of text, considerable care should be taken with its
  18192.  use.
  18193.  NOTES:
  18194.  
  18195.      (1)  When a section of text appears in several profiles,
  18196.           possibilities exist for sharing the corresponding code (etc.)
  18197.           for the implementation of several profiles, and the tests
  18198.           applicable to the use of the referenced base standards will be
  18199.           applicable to the testing of several profiles.
  18200.  
  18201.      (2)  It follows that it is in the interest of the implementors to
  18202.           promote the identification of common sections of text as parts
  18203.           of POSIX SPs, but even more to promote, in future
  18204.           standardization and profile work, the use of already defined
  18205.  
  18206.  
  18207.               Copyright (c) 1991 IEEE.  All rights reserved.
  18208.       This is an unapproved IEEE Standards Draft, subject to change.
  18209.  
  18210.  
  18211.  
  18212.  
  18213.  256                          A Considerations for Developers of POSIX SPs
  18214.  
  18215.  
  18216.  
  18217.  
  18218.  
  18219.  
  18220.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  18221.  
  18222.           parts of POSIX SPs, so that profiles fall into a few ``common
  18223.           molds.''  In particular, this allows implementation of a part of
  18224.           a POSIX SP with confidence that it may be used in the
  18225.           implementation of profiles as yet undefined, so that products
  18226.           are open to future development.
  18227.  
  18228.      (3)  Possibilities exist for a complete profile to be referenced from
  18229.           within the definition of another profile.
  18230.  
  18231.  
  18232.  
  18233.  A.8  Rules for Drafting and Presentation of POSIX SPs
  18234.  
  18235.  Throughout this Annex, which is concerned with documentation content and
  18236.  layout, reference is made to POSIX SPs.  A POSIX SP, or part thereof, may
  18237.  contain a whole profile definition or part of one or more profile
  18238.  definitions.  The wording of the Annex assumes that it is describing an
  18239.  undivided POSIX SP that defines one profile in its entirety.  Its
  18240.  application to the other cases is easily deduced.  Note, however, that
  18241.  each part of a Multipart POSIX SP shall use the same format as far as
  18242.  appropriate.
  18243.  
  18244.  
  18245.  A.8.1  General Arrangement
  18246.  
  18247.  The elements that together form a POSIX SP are classified into three
  18248.  groups:
  18249.  
  18250.      (1)  Preliminary elements are those elements that identify the POSIX
  18251.           SP, introduce its content, and explain its background, its
  18252.           development, and its relationship with other standards and POSIX
  18253.           SPs.
  18254.  
  18255.      (2)  Normative elements are those elements setting out the provisions
  18256.           with which it is necessary to comply in order to be able to
  18257.           claim conformity with the POSIX SP.
  18258.  
  18259.      (3)  Supplementary elements are those elements that provide
  18260.           additional information intended to assist the understanding or
  18261.           use of the POSIX SP.
  18262.  
  18263.  These groups of elements are described in the following clauses.
  18264.  
  18265.  
  18266.  
  18267.  
  18268.  
  18269.  
  18270.  
  18271.  
  18272.  
  18273.               Copyright (c) 1991 IEEE.  All rights reserved.
  18274.       This is an unapproved IEEE Standards Draft, subject to change.
  18275.  
  18276.  
  18277.  
  18278.  
  18279.  A.8 Rules for Drafting and Presentation of POSIX SPs                  257
  18280.  
  18281.  
  18282.  
  18283.  
  18284.  
  18285.  
  18286.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  18287.  
  18288.  A.8.2  Preliminary Elements
  18289.  
  18290.  A.8.2.1  Foreword
  18291.  
  18292.  The foreword shall appear in every POSIX SP.  It consists of a general
  18293.  part giving information relating to the organization responsible and a
  18294.  specific part giving as many of the following as are appropriate:
  18295.  
  18296.      - An identification of the organization or committee that prepared
  18297.        the POSIX SP; information regarding the approval of the POSIX SP
  18298.  
  18299.      - A statement that the POSIX SP cancels or replaces other documents
  18300.        in whole or in part
  18301.  
  18302.      - A statement of significant technical changes from the previous
  18303.        edition
  18304.  
  18305.      - A statement of which annexes are normative and which are
  18306.        informative
  18307.  
  18308.  A.8.2.2  Introduction
  18309.  
  18310.  The introduction shall appear in every POSIX SP.  It gives specific
  18311.  information about the process used to draft the POSIX SP and about the
  18312.  degree of international harmonization that it has received.
  18313.  
  18314.  
  18315.  A.8.3  General Normative Elements
  18316.  
  18317.  A.8.3.1  Title
  18318.  
  18319.  The title shall be composed of the following three elements:
  18320.  
  18321.      (1)  An introductory element:  _S_t_a_n_d_a_r_d _f_o_r _I_n_f_o_r_m_a_t_i_o_n _T_e_c_h_n_o_l_o_g_y
  18322.  
  18323.      (2)  An identification element:  _P_O_S_I_X _S_t_a_n_d_a_r_d_i_z_e_d _P_r_o_f_i_l_e
  18324.  
  18325.      (3)  A main element indicating the subject matter of the POSIX SP.
  18326.           For a Multipart POSIX SP, this element shall be subdivided into
  18327.           a general title element common to all parts, and a specific
  18328.           title element for each part;  where necessary, this specific
  18329.           element may include the identifier of an individual profile.
  18330.           The first word of this element should be the word ``POSIX''.
  18331.  
  18332.  Example:
  18333.  
  18334.  
  18335.  
  18336.  
  18337.  
  18338.  
  18339.               Copyright (c) 1991 IEEE.  All rights reserved.
  18340.       This is an unapproved IEEE Standards Draft, subject to change.
  18341.  
  18342.  
  18343.  
  18344.  
  18345.  258                          A Considerations for Developers of POSIX SPs
  18346.  
  18347.  
  18348.  
  18349.  
  18350.  
  18351.  
  18352.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  18353.  
  18354.        Standard for Information Technology --
  18355.        POSIX Standardized Profile --
  18356.        POSIX Transaction Processing
  18357.  
  18358.  A.8.3.2  Scope
  18359.  
  18360.  This element contains two subclauses as follows:
  18361.  
  18362.      (1)  General
  18363.  
  18364.           This element shall appear at the beginning of the POSIX SP or
  18365.           POSIX SP part to define without ambiguity the purpose and
  18366.           subject matter of the document, thereby indicating the limits of
  18367.           its applicability.  It shall not contain requirements.
  18368.  
  18369.      (2)  Scenario
  18370.  
  18371.           If the POSIX SP or POSIX SP part defines a profile, it shall
  18372.           include (where appropriate) the ``scenario'' of the profile;
  18373.           i.e., an illustration of the environment within which it is
  18374.           applicable.  This may show in a simplified graphic form how this
  18375.           fits within the POSIX Reference Model.
  18376.  
  18377.  A profile should first introduce the functional area being addressed and
  18378.  the applications activities within that area.  The requirements that have
  18379.  been addressed should be delineated, as well as those areas outside of
  18380.  the scope of the profile.
  18381.  
  18382.  A.8.3.3  Normative References
  18383.  
  18384.  This element shall give a list of normative documents (base standards),
  18385.  with their titles and publication dates, to which reference is made in
  18386.  the text in such a way as to make them indispensable for the application
  18387.  of the POSIX SP.  Where published amendments or technical errata to base
  18388.  standards are relevant to the definition of the profile in such a way as
  18389.  to have a potential impact on interworking or portability, they shall be
  18390.  explicitly referenced here.
  18391.  
  18392.  Reference shall also be made to this guide.
  18393.  
  18394.  
  18395.  A.8.4  Technical Normative Elements
  18396.  
  18397.  A.8.4.1  Requirements
  18398.  
  18399.  This element includes clauses relating to the use made of each of the
  18400.  main base standards referenced in the profile definition.  The content
  18401.  and layout of these clauses are not defined, but can be tailored to the
  18402.  type of material that has to be specified in each case.
  18403.  
  18404.  
  18405.               Copyright (c) 1991 IEEE.  All rights reserved.
  18406.       This is an unapproved IEEE Standards Draft, subject to change.
  18407.  
  18408.  
  18409.  
  18410.  
  18411.  A.8 Rules for Drafting and Presentation of POSIX SPs                  259
  18412.  
  18413.  
  18414.  
  18415.  
  18416.  
  18417.  
  18418.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  18419.  
  18420.  The information given shall not repeat the text of the base standards,
  18421.  but shall define the choices made in the profile of classes, subsets,
  18422.  options and ranges of parameter values.  It shall be in the form of
  18423.  conformance requirements and may, where appropriate, be given in tabular
  18424.  form.
  18425.  
  18426.  See 6.3.3 for more detail concerning the nature of the content required
  18427.  in this element of a POSIX SP.
  18428.  
  18429.  A.8.4.2  Normative Annexes
  18430.  
  18431.  Normative annexes are integral sections of the POSIX SP that, for reasons
  18432.  of convenience, are placed after all other normative elements.  The fact
  18433.  that an annex is normative (as opposed to informative) shall be made
  18434.  clear by the way in which it is referred to in the text, by a statement
  18435.  to this effect in the foreword, and by an indication at the head of the
  18436.  annex itself.
  18437.  
  18438.  
  18439.  A.8.5  Supplementary Elements
  18440.  
  18441.  A.8.5.1  Informative Annexes
  18442.  
  18443.  Informative annexes give additional information and are placed after the
  18444.  normative elements of a POSIX SP.  They shall not contain requirements.
  18445.  The fact that an annex is informative (as opposed to normative) shall be
  18446.  made clear by the way in which it is referred to in the text, by a
  18447.  statement to this effect in the foreword, and by an indication at the
  18448.  head of the annex itself.
  18449.  
  18450.  Informative annexes provide a point for documenting useful information
  18451.  for the users of a profile that poses no requirements.  Such annexes can
  18452.  include:
  18453.  
  18454.      (1)  Specification of additional standards or options that will make
  18455.           the profile useful for specific locales (character sets, etc.)
  18456.  
  18457.      (2)  Pointers to the referenced standards and information on ordering
  18458.           these
  18459.  
  18460.      (3)  Pointers to related specifications that may provide additional
  18461.           insight or potentially serve to fill gaps in the profile
  18462.  
  18463.      (4)  Comments and concepts in using the profile for various target
  18464.           readers.  This could include use in procurements (perhaps cross
  18465.           referencing related procurement standards like the FIPS in the
  18466.           US).  The annex may be used to provide recommendations for use
  18467.           that are not warranted in the standard (e.g., ``Algol is not
  18468.           recommended for new applications development'').
  18469.  
  18470.  
  18471.               Copyright (c) 1991 IEEE.  All rights reserved.
  18472.       This is an unapproved IEEE Standards Draft, subject to change.
  18473.  
  18474.  
  18475.  
  18476.  
  18477.  260                          A Considerations for Developers of POSIX SPs
  18478.  
  18479.  
  18480.  
  18481.  
  18482.  
  18483.  
  18484.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  18485.  
  18486.  
  18487.  
  18488.  
  18489.  
  18490.  
  18491.  
  18492.  
  18493.  
  18494.  
  18495.  
  18496.  
  18497.  
  18498.  
  18499.  
  18500.  
  18501.  
  18502.  
  18503.  
  18504.  
  18505.  
  18506.  
  18507.  
  18508.  
  18509.  
  18510.  
  18511.  
  18512.  
  18513.  
  18514.  
  18515.  
  18516.  
  18517.  
  18518.  
  18519.  
  18520.  
  18521.  
  18522.  
  18523.  
  18524.  
  18525.  
  18526.  
  18527.  
  18528.  
  18529.  
  18530.  
  18531.  
  18532.  
  18533.  
  18534.  
  18535.  
  18536.  
  18537.  
  18538.  
  18539.  
  18540.  
  18541.  
  18542.  
  18543.  
  18544.  
  18545.  
  18546.  
  18547.  
  18548.  
  18549.  
  18550.                                                                P1003.0/D14
  18551.  
  18552.  
  18553.  
  18554.  
  18555.  
  18556.  
  18557.                                   Annex B
  18558.                                (informative)
  18559.                                Bibliography
  18560.  
  18561.  
  18562.  
  18563.  
  18564.  _N_o_t_e _t_o _r_e_v_i_e_w_e_r_s:  _T_h_i_s _a_n_n_e_x _i_s _n_o_t _c_o_m_p_l_e_t_e.  _I_t _s_h_o_u_l_d _i_n_c_l_u_d_e         _e
  18565.  _r_e_f_e_r_e_n_c_e_s _t_o _s_t_a_n_d_a_r_d_s, _b_o_o_k_s, _a_r_t_i_c_l_e_s, _e_t_c., _t_h_a_t _a_r_e _n_o_t _r_e_q_u_i_r_e_d _f_o_r  _e
  18566.  _a_n _i_n_t_e_g_r_a_l _u_n_d_e_r_s_t_a_n_d_i_n_g _o_f _t_h_e _d_o_c_u_m_e_n_t (_a_s _a_r_e _t_h_e _e_n_t_r_i_e_s _i_n           _e
  18567.  _N_o_r_m_a_t_i_v_e _R_e_f_e_r_e_n_c_e_s).  _I_t _c_u_r_r_e_n_t_l_y _c_o_n_s_i_s_t_s _o_n_l_y _o_f _s_a_m_p_l_e _e_n_t_r_i_e_s.  _I_t  _e
  18568.  _w_i_l_l _b_e _r_e_p_l_a_c_e_d _i_n _a _l_a_t_e_r _d_r_a_f_t.                                         _e
  18569.  
  18570.  {B1}  ISO 7498: 1984, _I_n_f_o_r_m_a_t_i_o_n _p_r_o_c_e_s_s_i_n_g _s_y_s_t_e_m_s--_O_p_e_n _S_y_s_t_e_m_s _I_n_t_e_r_-
  18571.        _c_o_n_n_e_c_t_i_o_n--_B_a_s_i_c _R_e_f_e_r_e_n_c_e _M_o_d_e_l.1)
  18572.  
  18573.  {B2}  ISO 8072: 1986, _I_n_f_o_r_m_a_t_i_o_n _p_r_o_c_e_s_s_i_n_g _s_y_s_t_e_m_s--_O_p_e_n _S_y_s_t_e_m_s _I_n_t_e_r_-
  18574.        _c_o_n_n_e_c_t_i_o_n--_T_r_a_n_s_p_o_r_t _s_e_r_v_i_c_e _d_e_f_i_n_i_t_i_o_n.
  18575.  
  18576.  {B3}  ISO/IEC 8073: 1988, _I_n_f_o_r_m_a_t_i_o_n _p_r_o_c_e_s_s_i_n_g _s_y_s_t_e_m_s--_O_p_e_n _S_y_s_t_e_m_s
  18577.        _I_n_t_e_r_c_o_n_n_e_c_t_i_o_n--_C_o_n_n_e_c_t_i_o_n _o_r_i_e_n_t_e_d _t_r_a_n_s_p_o_r_t _p_r_o_t_o_c_o_l
  18578.        _s_p_e_c_i_f_i_c_a_t_i_o_n.2)
  18579.  
  18580.  {B4}  CCITT Recommendation X.25, _I_n_t_e_r_f_a_c_e _b_e_t_w_e_e_n _d_a_t_a _t_e_r_m_i_n_a_l
  18581.        _e_q_u_i_p_m_e_n_t (_D_T_E) _a_n_d _d_a_t_a _c_i_r_c_u_i_t-_t_e_r_m_i_n_a_t_i_n_g _e_q_u_i_p_m_e_n_t (_D_C_T) _f_o_r
  18582.        _t_e_r_m_i_n_a_l_s _o_p_e_r_a_t_i_n_g _i_n _t_h_e _p_a_c_k_e_t _m_o_d_e _a_n_d _c_o_n_n_e_c_t_e_d _t_o _p_u_b_l_i_c _d_a_t_a
  18583.        _n_e_t_w_o_r_k_s _b_y _d_e_d_i_c_a_t_e_d _c_i_r_c_u_i_t.3)
  18584.  
  18585.  {B5}  CCITT Recommendation X.212, _I_n_f_o_r_m_a_t_i_o_n _p_r_o_c_e_s_s_i_n_g _s_y_s_t_e_m_s--_D_a_t_a
  18586.        _c_o_m_m_u_n_i_c_a_t_i_o_n--_D_a_t_a _l_i_n_k _s_e_r_v_i_c_e _d_e_f_i_n_i_t_i_o_n _f_o_r _O_p_e_n _S_y_s_t_e_m_s
  18587.        _I_n_t_e_r_c_o_n_n_e_c_t_i_o_n.
  18588.  
  18589.  
  18590.  
  18591.  
  18592.  __________
  18593.   1) ISO documents can be obtained from the ISO office, 1, rue de Varembe',
  18594.      Case Postale 56, CH-1211, Gene`ve 20, Switzerland/Suisse.
  18595.   2) IEC documents can be obtained from the IEC office, 3, rue de Varembe',
  18596.      Case Postale 131, CH-1211, Gene`ve 20, Switzerland/Suisse.
  18597.   3) CCITT documents can be obtained from the CCITT General Secretariat,
  18598.      International Telecommunications Union, Sales Section, Place des
  18599.      Nations, CH-1211, Gene`ve 20, Switzerland/Suisse.
  18600.  
  18601.  
  18602.  
  18603.               Copyright (c) 1991 IEEE.  All rights reserved.
  18604.       This is an unapproved IEEE Standards Draft, subject to change.
  18605.  
  18606.  
  18607.  
  18608.  
  18609.  262                                                        B Bibliography
  18610.  
  18611.  
  18612.  
  18613.  
  18614.  
  18615.  
  18616.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  18617.  
  18618.  {B5}  ANSI X3.113-19874), _I_n_f_o_r_m_a_t_i_o_n _s_y_s_t_e_m_s--_P_r_o_g_r_a_m_m_i_n_g _l_a_n_g_u_a_g_e--_F_U_L_L
  18619.        _B_A_S_I_C.
  18620.  
  18621.  {B6}  IEEE Computer Society Technical Committee on Operating Systems and
  18622.        Application Environments Standards Subcommittee.  _T_C_O_S-_S_S_C _P_O_S_I_X
  18623.        _S_t_a_n_d_a_r_d_s _S_t_y_l_e _G_u_i_d_e.
  18624.  
  18625.  {B7}  American Telephone and Telegraph Company.  _S_y_s_t_e_m _V _I_n_t_e_r_f_a_c_e
  18626.        _D_e_f_i_n_i_t_i_o_n (_S_V_I_D), _I_s_s_u_e_s _2 _a_n_d _3.  Morristown, NJ:  UNIX Press,
  18627.        1986, 1989.
  18628.  
  18629.  {B8}  /usr/group Standards Committee.  _1_9_8_4 /_u_s_r/_g_r_o_u_p _S_t_a_n_d_a_r_d.  Santa
  18630.        Clara, CA:  UniForum, 1984.
  18631.  
  18632.  {B9}  X/Open Company, Ltd.  _X/_O_p_e_n _P_o_r_t_a_b_i_l_i_t_y _G_u_i_d_e, _I_s_s_u_e _3.  Englewood
  18633.        Cliffs, NJ:  Prentice-Hall, 1989.
  18634.  
  18635.  
  18636.  
  18637.  
  18638.  
  18639.  
  18640.  
  18641.  
  18642.  
  18643.  
  18644.  
  18645.  
  18646.  
  18647.  
  18648.  
  18649.  
  18650.  
  18651.  
  18652.  
  18653.  
  18654.  
  18655.  
  18656.  
  18657.  
  18658.  
  18659.  
  18660.  
  18661.  
  18662.  
  18663.  __________
  18664.   4) ANSI documents can be obtained from the Sales Department, American
  18665.      National Standards Institute, 1430 Broadway, New York, NY 10018.
  18666.  
  18667.  
  18668.  
  18669.               Copyright (c) 1991 IEEE.  All rights reserved.
  18670.       This is an unapproved IEEE Standards Draft, subject to change.
  18671.  
  18672.  
  18673.  
  18674.  
  18675.  Annex B Bibliography                                                  263
  18676.  
  18677.  
  18678.  
  18679.  
  18680.  
  18681.  
  18682.  
  18683.  
  18684.  
  18685.  
  18686.  
  18687.  
  18688.  
  18689.  
  18690.  
  18691.  
  18692.  
  18693.  
  18694.  
  18695.  
  18696.  
  18697.  
  18698.  
  18699.  
  18700.  
  18701.  
  18702.  
  18703.  
  18704.  
  18705.  
  18706.  
  18707.  
  18708.  
  18709.  
  18710.  
  18711.  
  18712.  
  18713.  
  18714.  
  18715.  
  18716.  
  18717.  
  18718.  
  18719.  
  18720.  
  18721.  
  18722.  
  18723.  
  18724.  
  18725.  
  18726.  
  18727.  
  18728.  
  18729.  
  18730.  
  18731.  
  18732.  
  18733.  
  18734.  
  18735.  
  18736.  
  18737.  
  18738.  
  18739.  
  18740.  
  18741.  
  18742.  
  18743.  
  18744.  
  18745.  
  18746.  
  18747.  
  18748.                                                                P1003.0/D14
  18749.  
  18750.  
  18751.  
  18752.  
  18753.  
  18754.  
  18755.                                   Annex C
  18756.                                (informative)
  18757.                    Standards Infrastructure Description
  18758.  
  18759.  
  18760.  
  18761.  
  18762.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y: _W_e_n_d_y _R_a_u_c_h
  18763.  
  18764.  
  18765.  
  18766.  C.1  Introduction
  18767.  
  18768.  This annex provides a brief summary of the major national and
  18769.  international organizations working on the standardization of information
  18770.  technology.
  18771.  
  18772.  There are two major categories of open standards organizations.  One
  18773.  consists of formally-recognized standards bodies, responsible for
  18774.  definition and dissemination of public standards.  Their specifications
  18775.  are known as formal or de jure standards.  International, national, and
  18776.  regional standards groups, and some professional and technical
  18777.  organizations' standards groups are examples of formal standards bodies.
  18778.  Organizations specifying standards for open system usually give
  18779.  precedence to international standards first, then regional, national, and
  18780.  finally professional group standards.
  18781.  
  18782.  The other standards organization category consists of informal bodies.
  18783.  Informal standards bodies are typically created by suppliers or users of
  18784.  information technology, usually using a consensus method, to enable the
  18785.  implementation of standards.  They produce specifications known as
  18786.  industry standards or de facto standards.  Certain trade associations,
  18787.  industry groups, vendor consortia, and user groups are examples of
  18788.  informal standards bodies.  For informal specifications to be approved as
  18789.  formal standards (e.g., international or national standards) informal
  18790.  standards groups typically submit their specifications to formal
  18791.  standards organizations.
  18792.  
  18793.  The term ``de facto standard'' is sometimes applied to popular vendor-
  18794.  defined systems.  Such systems, however, are closed systems, often
  18795.  controlled in a proprietary fashion.  Although they have value, closed de
  18796.  facto standards are not the subject of this guide.
  18797.  
  18798.  
  18799.  
  18800.  
  18801.               Copyright (c) 1991 IEEE.  All rights reserved.
  18802.       This is an unapproved IEEE Standards Draft, subject to change.
  18803.  
  18804.  
  18805.  
  18806.  
  18807.  C.1 Introduction                                                      265
  18808.  
  18809.  
  18810.  
  18811.  
  18812.  
  18813.  
  18814.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  18815.  
  18816.  Most standards bodies support three types of status for their standards
  18817.  or specifications--approved, draft, and work item.  An approved standard
  18818.  is one that has been fully ratified by whatever means the approving
  18819.  standards body uses.  A draft standard is one that has yet to be fully
  18820.  ratified, such as an ISO DIS (Draft International Standard) or a CEN ENV.
  18821.  Work item is a catch-all phrase for everything else, such as immature
  18822.  specifications, technical reports, etc., that have not yet achieved draft
  18823.  status.
  18824.  
  18825.  
  18826.  C.1.1  International Standards Bodies Overview
  18827.  
  18828.  Standards with the highest status are internationally agreed ones.  In
  18829.  information technology, these are produced and published by the
  18830.  International Organization for Standardization (ISO).  Other standards
  18831.  and/or recommendations are issued by the International Electrotechnical
  18832.  Commission (IEC), the International Telecommunication Union (ITU), and
  18833.  the CCITT.  International standards bodies participants are normally
  18834.  countries and trade bodies, rather than individual suppliers or users.
  18835.  
  18836.  
  18837.  C.1.2  National Standards Bodies Overview
  18838.  
  18839.  Like the international standards bodies, most national bodies do not
  18840.  admit either suppliers or users directly, but receive representatives
  18841.  from interested trade bodies.  In general, the national bodies support
  18842.  and adopt the international standards, developing national standards only
  18843.  if no international standards are available, or to meet special national
  18844.  requirements.  Each country has a national body that is the formal
  18845.  representative to the international standards groups.
  18846.  
  18847.  The relationship between the major international and national standards
  18848.  groups is shown in Figure C-1.
  18849.  
  18850.  
  18851.  C.1.3  International and National Standards Bodies Relationship
  18852.  
  18853.  Nongovernment standards organizations include trade associations,
  18854.  professional and technical societies, vendor consortia, user groups, and
  18855.  other special interest groups.  Actual standards development occurs
  18856.  within these groups.  The standards specified by formal standards groups
  18857.  within this category typically are subsequently submitted to national or
  18858.  international standards organizations for approval.  Many informal bodies
  18859.  submit their specifications to formal bodies for approval as an
  18860.  accredited standard.  (See Figure C-1).
  18861.  
  18862.  
  18863.  
  18864.  
  18865.  
  18866.  
  18867.               Copyright (c) 1991 IEEE.  All rights reserved.
  18868.       This is an unapproved IEEE Standards Draft, subject to change.
  18869.  
  18870.  
  18871.  
  18872.  
  18873.  266                                C Standards Infrastructure Description
  18874.  
  18875.  
  18876.  
  18877.  
  18878.  
  18879.  
  18880.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  18881.  
  18882.  _________________________________________________________________________
  18883.  
  18884.  
  18885.  
  18886.  
  18887.  
  18888.  
  18889.  
  18890.  
  18891.  
  18892.  
  18893.  
  18894.  
  18895.  
  18896.  
  18897.  
  18898.  
  18899.  
  18900.  
  18901.  
  18902.  
  18903.  
  18904.  
  18905.  
  18906.  
  18907.  
  18908.  
  18909.  
  18910.  
  18911.  
  18912.  
  18913.  
  18914.  _________________________________________________________________________
  18915.  Figure C-1  -  Selected Major Standards and Standards-Influencing Bodies
  18916.  
  18917.  
  18918.  
  18919.  C.2  The Formal Standards Groups
  18920.  
  18921.  
  18922.  C.2.1  International and National Standards Organizations
  18923.  
  18924.  NOTE:  Only a few of the many national standards organizations are         e
  18925.  described in this subclause.  However, the activities of these groups are  e
  18926.  representative of national standards groups in general.                    e
  18927.  
  18928.  
  18929.  
  18930.  
  18931.  
  18932.  
  18933.               Copyright (c) 1991 IEEE.  All rights reserved.
  18934.       This is an unapproved IEEE Standards Draft, subject to change.
  18935.  
  18936.  
  18937.  
  18938.  
  18939.  C.2 The Formal Standards Groups                                       267
  18940.  
  18941.  
  18942.  
  18943.  
  18944.  
  18945.  
  18946.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  18947.  
  18948.  _A_F_N_O_R_:__A_s_s_o_c_i_a_t_i_o_n__F_r_a_n_c_a_i_s_e__d_e__N_o_r_m_a_l_i_z_a_t_i_o_n
  18949.  
  18950.  AFNOR is the French national standards body.  Its responsibilities
  18951.  include sourcing, coordinating, approving, and promoting standards,
  18952.  representing the French at international meetings, and controlling the
  18953.  use of the NF label--a trademark that shows compliance with a French
  18954.  national standard.  AFNOR publishes three types of standards documents--
  18955.  AFNOR-approved standards that are mandatory for use in the public sector,
  18956.  experimental standards that use new processes or techniques and whose use
  18957.  is voluntary, and information or guide standards.
  18958.  
  18959.  For further information, contact Association Francaise de Normalization
  18960.  (AFNOR), Tour Europe - Cedex 7, 92080 Paris La Defense, Telephone:  (1)
  18961.  42 91 55 55, Telex:  AFNOR 611 974F, Fax:  (1) 42 91 56 56.
  18962.  
  18963.  _A_N_S_I_:__A_m_e_r_i_c_a_n__N_a_t_i_o_n_a_l__S_t_a_n_d_a_r_d_s__I_n_s_t_i_t_u_t_e
  18964.  
  18965.  ANSI is the national standards coordinating and approval body for the
  18966.  United States.  A voluntary organization founded in 1918, the ANSI
  18967.  performs three major types of functions.
  18968.  
  18969.  First, the ANSI approves standards and accredits standards development
  18970.  groups and certification programs.  ANSI does not itself develop
  18971.  standards.  Instead, it approves voluntarily-submitted specifications
  18972.  that were developed by technical and professional societies, trade
  18973.  associations, and special interest groups, if these specifications and/or
  18974.  groups meet ANSI criteria for due process and consensus.
  18975.  
  18976.  ANSI accredits three types of organizations.  One is professional
  18977.  societies, such as the IEEE.  The second is committees formed for the
  18978.  exclusive purpose of developing standards, such as X3.  The third is
  18979.  accredited by ANSI to use the canvass method to develop standards.  Such
  18980.  organizations prepare a standard using their internal procedures.  Then
  18981.  they submit that standard to balloting by other organizations
  18982.  representing a variety of interests.  Last, they reconcile comments and
  18983.  objections returned.  The NIST is an organization accredited to use the
  18984.  canvass process for standards development.
  18985.  
  18986.  ANSI's second major function is to represent and coordinate US interests
  18987.  in international, nontreaty, and nongovernmental standards bodies.
  18988.  ANSI's third function is to be a clearinghouse for national,
  18989.  international, and foreign national standards.  ANSI membership is open
  18990.  to manufacturers, organizations, users, and communications carriers.  At
  18991.  present, more than 220 professional and technical societies and trade
  18992.  associations that develop standards in the US are ANSI members, as are
  18993.  1000 companies.
  18994.  
  18995.  For further information, contact American National Standards Institute
  18996.  (ANSI), 1430 Broadway, New York, NY 10018, (212) 354-3300, Telex:
  18997.  
  18998.  
  18999.               Copyright (c) 1991 IEEE.  All rights reserved.
  19000.       This is an unapproved IEEE Standards Draft, subject to change.
  19001.  
  19002.  
  19003.  
  19004.  
  19005.  268                                C Standards Infrastructure Description
  19006.  
  19007.  
  19008.  
  19009.  
  19010.  
  19011.  
  19012.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  19013.  
  19014.  42 42 96 ANSI UI.
  19015.  
  19016.  _B_S_I_:__B_r_i_t_i_s_h__S_t_a_n_d_a_r_d_s__I_n_s_t_i_t_u_t_e
  19017.  
  19018.  BSI is the British national standards body and is responsible for
  19019.  promulgation of national standards.  The BSI determines the overall UK
  19020.  view toward international standards and conveys that back to the
  19021.  secretariat of the international committee.
  19022.  
  19023.  For further information, contact British Standards Institute, 2 Park
  19024.  Street, London W1A2BS, United Kingdom, Telephone:  44 1 629 90 00, Fax:
  19025.  44 1 629 05 06.
  19026.  
  19027.  _C_a_n_a_d_i_a_n__S_t_a_n_d_a_r_d_s__A_s_s_o_c_i_a_t_i_o_n__(_C_S_A_)
  19028.  
  19029.  The Canadian Standards Association (CSA), in conjunction with regulatory
  19030.  agencies and with the provincial and national governments of Canada,
  19031.  provides a single source for consensus-based standards development,
  19032.  conformance testing, and standards-based regulations creation.  The CSA
  19033.  has no single counterpart in the US.  Instead, the CSA handles selected
  19034.  functions from US testing organizations, the FCC, and ANSI.
  19035.  
  19036.  Membership in the CSA is open to any Canadian citizen, business, or
  19037.  organization.  Members of the CSA's technical committees developing
  19038.  standards are volunteers, drawn from consumers, manufacturers,
  19039.  government, labor, and consultants.  Membership is based on expertise in
  19040.  the field, and not, as in the US, mainly on having a vested commercial
  19041.  interest.  The CSA has over 900 committees handling various aspects of
  19042.  standards in areas such as the environment, electrical and electronics,
  19043.  communications and information processing, construction, energy,
  19044.  transportation and distribution, materials technology, and production
  19045.  management.
  19046.  
  19047.  CSA programs support Canadian industry and Canadian consumers where
  19048.  safety and quality of merchandise sold or made in Canada are concerned.
  19049.  To assure product quality and safety, the CSA offers fee-based testing
  19050.  services.  In performing such services, the CSA assumes that most
  19051.  manufacturers have the facilities to test their products before
  19052.  submitting them to the CSA for certification and approval.  If they do
  19053.  not, the CSA provides this service.  CSA certification involves the
  19054.  submission of the product or service by the supplier, the verification of
  19055.  that product or capability by the CSA, and then continued follow-up
  19056.  audits by the CSA to ensure that the quality of the product or service is
  19057.  maintained.
  19058.  
  19059.  For further information, contact (Address and phone number TBD).
  19060.  
  19061.  
  19062.  
  19063.  
  19064.  
  19065.               Copyright (c) 1991 IEEE.  All rights reserved.
  19066.       This is an unapproved IEEE Standards Draft, subject to change.
  19067.  
  19068.  
  19069.  
  19070.  
  19071.  C.2 The Formal Standards Groups                                       269
  19072.  
  19073.  
  19074.  
  19075.  
  19076.  
  19077.  
  19078.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  19079.  
  19080.  _C_C_I_T_T_:__C_o_m_i_t_e__C_o_n_s_u_l_t_a_t_i_f__I_n_t_e_r_n_a_t_i_o_n_a_l__d_e__T_e_l_e_g_r_a_p_h_i_e__e_t__T_e_l_e_p_h_o_n_i_e
  19081.  
  19082.  An international organization, the CCITT is part of the International
  19083.  Telecommunications Union, which is a United Nations treaty organization
  19084.  formed in 1865.  It is now a specialized agency of the United Nations.
  19085.  
  19086.  The CCITT's primary mission is to develop standards supporting the
  19087.  international interconnection and interoperability of telecommunications
  19088.  networks at interfaces with end-user systems, carriers, information and
  19089.  enhanced-service providers, and customer premises equipment.  Every four
  19090.  years, the CCITT publishes the results of its work as
  19091.  ``Recommendations.'' Its recommendations are law where communications in
  19092.  Europe are nationalized.
  19093.  
  19094.  Membership and participation in the CCITT are open to private companies;
  19095.  scientific and trade associations; and postal, telephone, and telegraph
  19096.  administrations.  CCITT's principal participants are telecommunications
  19097.  administrations and carriers.  Scientific and industrial organizations
  19098.  can participate as observers.  The US representative is the Department of
  19099.  State.
  19100.  
  19101.  For further information, contact International Consultative Committee on
  19102.  Telegraphy and Telephone, Central Administration Office, CH-1211, 2 rue
  19103.  de Varembe', Geneva, Switzerland,
  19104.  
  19105.  _C_E_N_/_C_E_N_E_L_E_C_/_C_E_P_T
  19106.  
  19107.  The Comite Europeen de Normalisation (CEN), Comite Europeen de
  19108.  Normalisation Electrotechnique (CENELEC), and the European Committee for
  19109.  Post and Telecommunications Administration are European regional
  19110.  standards committees responsible for developing and publishing European
  19111.  standards.  CEN is an association of EC (European Community) and EFTA
  19112.  (European Free Trade Association) members.  It is active in making
  19113.  members' standards into ISO standards and European standards.  CENELEC is
  19114.  the counterpart of CEN that deals exclusively with electrotechnical
  19115.  matters.  CEPT is the CEN counterpart that deals with telecommunications
  19116.  matters.
  19117.  
  19118.  CEN, CENELEC, and CEPT can be considered the European regional equivalent
  19119.  of ISO for two reasons.  First, they have as members the national
  19120.  standards bodies of their eighteen EC and EFTA member states.  Second,
  19121.  standards adopted by these organizations must be implemented in full as
  19122.  national standards, regardless of the way in which the member voted, and
  19123.  regardless of any standards that conflict with them must be withdrawn.
  19124.  CEN members, for example, agree to use its published standards in
  19125.  preference to national standards, wherever possible.
  19126.  
  19127.  CEN, CENELEC, and CEPT were created to improve the competitiveness of
  19128.  European enterprise by removing technical barriers to trade and
  19129.  
  19130.  
  19131.               Copyright (c) 1991 IEEE.  All rights reserved.
  19132.       This is an unapproved IEEE Standards Draft, subject to change.
  19133.  
  19134.  
  19135.  
  19136.  
  19137.  270                                C Standards Infrastructure Description
  19138.  
  19139.  
  19140.  
  19141.  
  19142.  
  19143.  
  19144.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  19145.  
  19146.  facilitating the free movement of goods within Europe.  To accomplish its
  19147.  aims, CEN, CENELEC, and CEPT perform the following tasks:
  19148.  
  19149.      - Create and promote European Standards (EN).
  19150.  
  19151.      - Rapidly create prestandards (ENV) in technology areas in which
  19152.        there is a high level of innovation or where it is felt that future
  19153.        standardization requires basic guidance.  ENVs are subjected to an
  19154.        experimental period of up to three years.
  19155.  
  19156.      - Create harmonization documents (HD) that are more flexible than
  19157.        European Standards so that the technical, historical, or legal
  19158.        circumstances pertaining to each country can be taken into account.
  19159.  
  19160.      - Set up a framework for European certification that supports the
  19161.        issuing of a European mark of conformity to certain standards and
  19162.        the mutual recognition of test results and inspections.
  19163.  
  19164.      - Promote the application within Europe of ISO standards and
  19165.        accelerate their production.
  19166.  
  19167.      - Work in liaison with European professional federations and numerous
  19168.        technical organizations to establish priority standards programs
  19169.        and contribute to the technical work.
  19170.  
  19171.  For further information, contact the European Committee for
  19172.  Standardization (CEN), European Committee for Post and Telecommunications
  19173.  Administration, 2 rue Brederode, Suite 5, B-1000 Brussels, Belgium,
  19174.  Telephone:  +322 519 6860, Telex:  26257 CENLEC.
  19175.  
  19176.  _D_I_N_:__D_e_u_t_s_c_h_e_s__I_n_s_t_i_t_u_t__f_u_r__N_o_r_m_u_n_g
  19177.  
  19178.  DIN is the German national standards body.  Its functions include those
  19179.  performed by the US's ANSI (e.g., developing national standards and
  19180.  representing Germany in international and European standards bodies such
  19181.  as ISO, the IEC, CEN, and CENELEC), in addition to test and certification
  19182.  functions that are not handled by US consensus standards organizations.
  19183.  Since a key DIN objective is eliminating technical barriers to free
  19184.  trade, DIN plays an active role in the international standards arena to
  19185.  ensure that German products can be used and accepted internationally.
  19186.  
  19187.  DIN standards are not mandatory within Germany.  DIN claims that it
  19188.  relies on the technical excellence of its standards to win converts.
  19189.  Further incentive for accepting DIN standards is provided because DIN
  19190.  standards serve as the basis for regulatory technical law in Germany.
  19191.  Also, without the DIN testing and inspection mark, no insurance carrier
  19192.  in Germany will write insurance for a product.
  19193.  
  19194.  
  19195.  
  19196.  
  19197.               Copyright (c) 1991 IEEE.  All rights reserved.
  19198.       This is an unapproved IEEE Standards Draft, subject to change.
  19199.  
  19200.  
  19201.  
  19202.  
  19203.  C.2 The Formal Standards Groups                                       271
  19204.  
  19205.  
  19206.  
  19207.  
  19208.  
  19209.  
  19210.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  19211.  
  19212.  DIN members include groups within Germany representing manufacturers, the
  19213.  academic community, user groups, user organizations (e.g., consumer
  19214.  advocate groups), the government, and trade unions.  Many DIN staff are
  19215.  supported by organizations or companies, rather than by DIN.  DIN
  19216.  presently has over 20000 standards.
  19217.  
  19218.  For further information, contact Deutsches Institut fur Normung,
  19219.  Burggrafenstrasse 6, Postfach 1107, D-1000 Berlin 30, Telephone:
  19220.  49 30 26 01-1, Fax: 49 30 260 12 31.
  19221.  
  19222.  _I_E_C_:__I_n_t_e_r_n_a_t_i_o_n_a_l__E_l_e_c_t_r_o_t_e_c_h_n_i_c_a_l__C_o_m_m_i_s_s_i_o_n
  19223.  
  19224.  The International Electrotechnical Committee is the equivalent of ISO,
  19225.  but for electrotechnical standards.  ISO and the IEC have converged many
  19226.  of their information technology efforts to form JTC1.
  19227.  
  19228.  For further information, contact International Electrotechnical
  19229.  Commission (IEC), 3, rue de Varembe', CH-1211 Geneva 20, Switzerland,
  19230.  Telephone:  41 22 34 01 50, Fax:  41 22 33 38 43.
  19231.  
  19232.  _I_S_O_:__I_n_t_e_r_n_a_t_i_o_n_a_l__O_r_g_a_n_i_z_a_t_i_o_n__f_o_r__S_t_a_n_d_a_r_d_i_z_a_t_i_o_n
  19233.  
  19234.  ISO was established in its present form in 1947 with the aim of reaching
  19235.  international agreement on standards.  A voluntary, non-United Nations
  19236.  treaty, ISO's membership consists of delegations from standards bodies in
  19237.  participating nations.  ISO solicits comments from other groups as well,
  19238.  including ECMA, the IEEE, the NIST, and the CCITT.  ISO has a close
  19239.  relationship with the CCITT, which is, perhaps, the most influential of
  19240.  all the observer groups within ISO.
  19241.  
  19242.  ISO is responsible for the development and standardization of the Open
  19243.  Systems Interconnection (OSI) model.  It also considers items for
  19244.  standardization that were developed in other standards bodies, such as
  19245.  ANSI.  At present, for example, it is considering the core POSIX standard
  19246.  (P1003.1).
  19247.  
  19248.  For further information, contact the International Organization for
  19249.  Standardization, Central Secretariat, 1, rue de Varembe', CH-1211, Geneva,
  19250.  Switzerland-40.
  19251.  
  19252.  _J_I_S_C_:__J_a_p_a_n_e_s_e__I_n_d_u_s_t_r_i_a_l__S_t_a_n_d_a_r_d_s__C_o_m_m_i_t_t_e_e
  19253.  
  19254.  The Japanese Industrial Standards Committee (JISC) is the national
  19255.  standards body of Japan.  The JISC represents Japan at ISO and IEC,
  19256.  develops Japanese standards, and monitors and liaises with the
  19257.  standards-developing activities of other national organizations,
  19258.  especially those of the US.  The goal of the JISC is to ensure that
  19259.  Japanese industry can compete internationally in the information
  19260.  technology and telecommunications industries.
  19261.  
  19262.  
  19263.               Copyright (c) 1991 IEEE.  All rights reserved.
  19264.       This is an unapproved IEEE Standards Draft, subject to change.
  19265.  
  19266.  
  19267.  
  19268.  
  19269.  272                                C Standards Infrastructure Description
  19270.  
  19271.  
  19272.  
  19273.  
  19274.  
  19275.  
  19276.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  19277.  
  19278.  The JISC has no true counterpart in other nations since the JISC has a
  19279.  special relationship with the Japanese government and major
  19280.  manufacturers.  For example, the JISC's secretariat is the Agency of
  19281.  Industrial Science and Technology, a division of the Ministry of
  19282.  International Trade and Industry (MITI), which plays a central role in
  19283.  Japanese industry.  The influence of this centralized national planning
  19284.  structure eliminates many areas of contention, including among companies
  19285.  with multinational branches, and facilitates the ability for Japanese
  19286.  standards groups to gain a consensus.
  19287.  
  19288.  Major Japanese manufacturers help plan and develop standards.  Foreign
  19289.  companies' involvement in the JISC is limited because of geographic and
  19290.  linguistic differences and because of restrictions on their meaningful
  19291.  participation.  Although large-scale manufacturers may participate, user
  19292.  groups and small manufacturers find participation very difficult.
  19293.  
  19294.  For information, contact Japanese Industrial Standards Committee, c/o
  19295.  Standards Department, Agency of Industrial Science and Technology,
  19296.  Ministry of International Trade and Industry, 1-3-1 Kasumigaseki,
  19297.  Chiyoda-ku, Telephone:  813 501 92 95/6, Fax:  81 3 580 14 18.
  19298.  
  19299.  _J_T_C_1_:__J_o_i_n_t__T_e_c_h_n_i_c_a_l__C_o_m_m_i_t_t_e_e__1
  19300.  
  19301.  The JTC1, established in 1987, is the first joint committee of the ISO
  19302.  TC97 (Information Processing Systems) and its subcommittees, with the IEC
  19303.  Technical Committee 83 (Information Technology Equipment) and the
  19304.  subcommittee IEC SC47B (Microprocessor systems).  The joint committee was
  19305.  formed to eliminate much of the two groups' standardization-activities'
  19306.  overlap and prevent the creation of incompatible standards for the same
  19307.  device or technology area.
  19308.  
  19309.  Although ISO and IEC are equal partners in the management of JTC1, most
  19310.  of JTC1's standards work grew out of ISO's information processing work.
  19311.  In fact, JTC1 has become one of the most important information technology
  19312.  standards organizations today because so many of the major ISO
  19313.  information technology standards being developed today are actually being
  19314.  produced by JTC1 groups.
  19315.  
  19316.  The JTC1's purpose is to develop international standards in the areas of
  19317.  information technology systems (including microprocessor systems) and
  19318.  equipment.  Microprocessor systems include, but are not limited to,
  19319.  microprocessor assemblies, and related hardware and software for
  19320.  controlling the flow of signals at the terminals of microprocessor
  19321.  assemblies.
  19322.  
  19323.  The JTC1 initially organized its standards work into four major
  19324.  groupings, each of which contains subcommittees that, in turn contain
  19325.  working groups.  The four main groupings and their subcommittees are:
  19326.  
  19327.  
  19328.  
  19329.               Copyright (c) 1991 IEEE.  All rights reserved.
  19330.       This is an unapproved IEEE Standards Draft, subject to change.
  19331.  
  19332.  
  19333.  
  19334.  
  19335.  C.2 The Formal Standards Groups                                       273
  19336.  
  19337.  
  19338.  
  19339.  
  19340.  
  19341.  
  19342.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  19343.  
  19344.     JTC1 Application Elements Group
  19345.  
  19346.           SC1:     Vocabulary
  19347.  
  19348.           SC7:     Software Engineering
  19349.  
  19350.           SC14:    Representation of Data Elements
  19351.  
  19352.           SC22:    Languages
  19353.  
  19354.     JTC1 Equipment and Media Group
  19355.  
  19356.           SC11:    Flexible Magnetic Media for Digital Data Interchange
  19357.  
  19358.           SC15:    Labeling and File Structure
  19359.  
  19360.           SC17:    Identification and Credit Cards
  19361.  
  19362.           SC23:    Optical Disk Cartridges for Information Interchange
  19363.  
  19364.           SC28:    Office Equipment
  19365.  
  19366.     JTC1 Systems Group
  19367.  
  19368.           SC6:     Telecommunications and Information Exchange Between
  19369.                    Systems
  19370.  
  19371.           SC13:    Interconnection of Equipment
  19372.  
  19373.           SC18:    Text and Office Systems
  19374.  
  19375.           SC21:    Information Retrieval, Transfer, and Management for OSI
  19376.  
  19377.     JTC1 Systems Support Group
  19378.  
  19379.           SC2:     Character Sets and Information Coding
  19380.  
  19381.           SC24:    Computer Graphics
  19382.  
  19383.           SC25:    Interconnection of Information Technology Equipment
  19384.                    (formerly IEC TC83)
  19385.  
  19386.           SC26:    Microprocessor Systems (formerly IEC TC47B)
  19387.  
  19388.           SC27:    Security Techniques (grew out of JTC1 SC20:  Data
  19389.                    Cryptographic Techniques)
  19390.  
  19391.  POSIX standardization work is being done within SC22's Working Group 15
  19392.  (SC22/WG15).  A JTC1 Special Working Group on Strategic Planning is
  19393.  
  19394.  
  19395.               Copyright (c) 1991 IEEE.  All rights reserved.
  19396.       This is an unapproved IEEE Standards Draft, subject to change.
  19397.  
  19398.  
  19399.  
  19400.  
  19401.  274                                C Standards Infrastructure Description
  19402.  
  19403.  
  19404.  
  19405.  
  19406.  
  19407.  
  19408.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  19409.  
  19410.  performing a technical study on Application Portability (AP).  This
  19411.  study's goal is to identify the standards that need to be written or
  19412.  revised to support application portability between hardware and software
  19413.  environments.
  19414.  
  19415.  The JTC1 is not involved in application-specific information technology
  19416.  areas, such as banking and industrial automation systems, nor is it
  19417.  concerned with microprocessor subsystems covered by the scopes of IEC
  19418.  TC22 on power electronics or TC86 on fiber optics.
  19419.  
  19420.  The JTC1 has liaison relationships with numerous ISO and IEC Technical
  19421.  Committees, as well as with the CCITT.
  19422.  
  19423.  Like ISO, membership in JTC1 consists of delegations from standards
  19424.  organizations in member countries.  At present, 23 countries participate
  19425.  in JTC1, and there are another 11 observer countries.  The ANSI holds the
  19426.  secretariat for JTC1.
  19427.  
  19428.  For further information, contact:  American National Standards Institute
  19429.  (ANSI), 1430 Broadway, New York, NY 10018, (212) 354-3300, Telex:
  19430.  42 42 96 ANSI UI, or International Organization for Standardization
  19431.  (ISO), Central Secretariat, 1, rue de Varembe', CH-1211, Geneva,
  19432.  Switzerland-40.
  19433.  
  19434.  _S_G_F_S__(_S_p_e_c_i_a_l__G_r_o_u_p__o_n__F_u_n_c_t_i_o_n_a_l__S_t_a_n_d_a_r_d_i_z_a_t_i_o_n_)
  19435.  
  19436.  The Special Group on Functional Standardization (SGFS) is an ISO group,
  19437.  under JTC1, which is responsible for the international standardization
  19438.  process of profiles or functional standards.
  19439.  
  19440.  
  19441.  C.2.2  Nongovernment Formal Standards Organizations
  19442.  
  19443.  _E_C_M_A_:__E_u_r_o_p_e_a_n__C_o_m_p_u_t_e_r__M_a_n_u_f_a_c_t_u_r_e_r_s__A_s_s_o_c_i_a_t_i_o_n
  19444.  
  19445.  Established in 1961 to develop data processing standards, ECMA is a trade
  19446.  organization, open to any computer firm developing, manufacturing, or
  19447.  selling in Europe.  The ECMA has about 20 members, and approximately 13
  19448.  active Technical Committees.
  19449.  
  19450.  ECMA contributes to the ISO standards development efforts, in addition to
  19451.  issuing its own standards.  ECMA is particularly active in the
  19452.  development of higher layer protocols for OSI networking.  It also is
  19453.  developing a standard for a Portable Common Tool Environment (PCTE).
  19454.  
  19455.  For further information, contact European Computer Manufacturers
  19456.  Association, 114 rue du Rhone, CH-1204 Geneva, Switzerland, Telephone:
  19457.  41-22-735-36-34, Telex:  41 3237, Fax:  41 22 786 53 31.
  19458.  
  19459.  
  19460.  
  19461.               Copyright (c) 1991 IEEE.  All rights reserved.
  19462.       This is an unapproved IEEE Standards Draft, subject to change.
  19463.  
  19464.  
  19465.  
  19466.  
  19467.  C.2 The Formal Standards Groups                                       275
  19468.  
  19469.  
  19470.  
  19471.  
  19472.  
  19473.  
  19474.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  19475.  
  19476.  _E_I_A_:__E_l_e_c_t_r_o_n_i_c__I_n_d_u_s_t_r_i_e_s__A_s_s_o_c_i_a_t_i_o_n
  19477.  
  19478.  The EIA is a US trade organization, whose membership consists primarily
  19479.  of manufacturers.  The EIA has been a standards developer in the areas of
  19480.  electrical and electronic products and components since 1926.  Many of
  19481.  its standards have been submitted to ANSI and approved as ANSI standards.
  19482.  The EIA is best known for the RS-232-C standard.
  19483.  
  19484.  For further information, contact John Kinn, Vice President - Engineering,
  19485.  Electronic Industries Association (EIA), 2001 I Street NW, Washington, DC
  19486.  20036, (202) 467-4961.
  19487.  
  19488.  _I_E_E_E_:__I_n_s_t_i_t_u_t_e__o_f__E_l_e_c_t_r_i_c_a_l__a_n_d__E_l_e_c_t_r_o_n_i_c__E_n_g_i_n_e_e_r_s
  19489.  
  19490.  The IEEE is a professional scientific, engineering, and educational
  19491.  society that develops and publishes standards and specifications in a
  19492.  variety of computer and engineering areas.  The standards and
  19493.  specifications published are of three types:  true standards, recommended
  19494.  practices, and guides.
  19495.  
  19496.  ``Standards'' are specifications with mandatory requirements.
  19497.  Recommended practices are specifications of procedures and positions
  19498.  preferred by the IEEE.  Guides are specifications that suggest
  19499.  alternative approaches to good practice, but make no clear-cut
  19500.  recommendations.  The IEEE is accredited by ANSI, and can, therefore,
  19501.  submit its standards directly to the ANSI board of Standards Review.  All
  19502.  new and revised IEEE standards are submitted to ANSI for review and
  19503.  adoption as ANSI standards.
  19504.  
  19505.  The IEEE Standards Board authorizes, coordinates, and approves all
  19506.  standards projects, and coordinates cooperation with other standards
  19507.  organizations.  Standards are proposed and sponsored by technical
  19508.  committees of the IEEE Societies, standards committees, or Standards
  19509.  Coordinating Committees (SCC), depending on the scope of the work.
  19510.  Either these committees or standards subcommittees manage the actual
  19511.  standards development and balloting.  The individual draft standards are
  19512.  specified in working groups inside the subcommittees--one working group
  19513.  per standard (see Figure C-2).
  19514.  
  19515.  IEEE membership is open to any dues-paying individuals.  Standards
  19516.  participants are individuals, not companies or organizations.  IEEE
  19517.  membership is required for voting, but not for participating in the
  19518.  development of draft standards.
  19519.  
  19520.  Approximately 30000 members are active in standards development.  More
  19521.  than 500 IEEE standards exist, and more than 800 standards projects are
  19522.  underway.  The IEEE also administers the secretariat or cosecretariat of
  19523.  17 American National Standards committees.
  19524.  
  19525.  
  19526.  
  19527.               Copyright (c) 1991 IEEE.  All rights reserved.
  19528.       This is an unapproved IEEE Standards Draft, subject to change.
  19529.  
  19530.  
  19531.  
  19532.  
  19533.  276                                C Standards Infrastructure Description
  19534.  
  19535.  
  19536.  
  19537.  
  19538.  
  19539.  
  19540.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  19541.  
  19542.  _________________________________________________________________________
  19543.  
  19544.  
  19545.  
  19546.  
  19547.  
  19548.  
  19549.  
  19550.  
  19551.  
  19552.  
  19553.  
  19554.  
  19555.  
  19556.  
  19557.  
  19558.  
  19559.  
  19560.  
  19561.  
  19562.  
  19563.  
  19564.  
  19565.  
  19566.  
  19567.  
  19568.  
  19569.  
  19570.  
  19571.  
  19572.  
  19573.  
  19574.  
  19575.  
  19576.  
  19577.  _________________________________________________________________________
  19578.                    Figure C-2  -  IEEE Standards Diagram
  19579.  
  19580.  
  19581.  The most well known IEEE standards are the IEEE 802.3 CSMA/CD and 802.4
  19582.  token bus LANS, IEEE-488 bus, the National Electrical Safety Code, and
  19583.  the P1003.n POSIX standards.  The 802.3 and 802.4 standards are also
  19584.  approved ISO standards.  The core POSIX standard (POSIX.1 {2}) has been
  19585.  approved by ISO, and is now an ISO, as well as an IEEE, standard.  The
  19586.  POSIX.0 specifications, with which this document is concerned, will be,
  19587.  in IEEE parlance, a ``Guide'' to a POSIX Open System Environment.
  19588.  
  19589.  For further information, contact the Institute of Electrical and
  19590.  Electronics Engineers, Inc., 345 East 47th Street, New York, NY 10017,
  19591.  
  19592.  
  19593.               Copyright (c) 1991 IEEE.  All rights reserved.
  19594.       This is an unapproved IEEE Standards Draft, subject to change.
  19595.  
  19596.  
  19597.  
  19598.  
  19599.  C.2 The Formal Standards Groups                                       277
  19600.  
  19601.  
  19602.  
  19603.  
  19604.  
  19605.  
  19606.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  19607.  
  19608.  USA.
  19609.  
  19610.  _N_I_S_T_:__N_a_t_i_o_n_a_l__I_n_s_t_i_t_u_t_e__o_f__S_t_a_n_d_a_r_d_s__a_n_d__T_e_c_h_n_o_l_o_g_y
  19611.  
  19612.  The National Institute of Standards and Technology (formerly the National
  19613.  Bureau of Standards) was established by an act of the US Congress on
  19614.  March 3, 1901 to advance, and facilitate the application of, US science
  19615.  and technology for public benefit.  Toward this end, the Institute for
  19616.  Computer Sciences and Technology (ICST) within the NIST, conducts
  19617.  research and provides technical advisory services to help Federal
  19618.  agencies acquire and apply computer technology.
  19619.  
  19620.  The NIST is a major driving force behind standards development.  Through
  19621.  the Institute for Computer Sciences and Technology, the NIST develops and
  19622.  publishes Federal Information Processing Standards (FIPS) for the United
  19623.  States.  Federal agencies to use in their computer equipment
  19624.  procurements.  Federal agencies are obligated to use these standards,
  19625.  where applicable.
  19626.  
  19627.  Federal computer standards also are widely used by the private sector,
  19628.  and often are adopted as ANSI standards.  Besides defining standards, the
  19629.  NIST has defined an Application Portability Profile (APP), which
  19630.  comprises a series of nonmandatory specifications and a guide for US
  19631.  government users to use in developing a portable, interoperable
  19632.  architecture and environment.
  19633.  
  19634.  The development and evolution of both FIPS and the APP is carried out in
  19635.  conjunction with users and vendors through an ongoing series of NIST-
  19636.  conducted Implementor Workshops and User Workshops (e.g., OSI
  19637.  implementors workshops, APP workshops, and Integrated Software
  19638.  Engineering Environment workshops).  The workshops provide forums for
  19639.  user and vendor feedback and comments on evolving NIST standards, and
  19640.  help ensure that there is a general commitment among vendors to building
  19641.  products that conform to the evolving NIST specifications.
  19642.  
  19643.  Additionally, the NIST develops test methods and performance measures to
  19644.  help users and vendors implement standards and to test the conformance of
  19645.  vendor implementations to FIPS specifications.  Among others, the NIST
  19646.  has test suites for most FIPS programming languages, FIPS Database SQL,
  19647.  and POSIX.1 {2}.  The POSIX.1 {2} conformance test suite, however, is
  19648.  based on the conformance-test assertions developed in the POSIX Test and
  19649.  Methods working group (P1003.3.1).
  19650.  
  19651.  Besides developing its own standards, NIST staff members participate in a
  19652.  number of other standards activities and organizations, including the
  19653.  ANSI X3 Committee on Information Processing Systems, ISO/IEC JTC1, CCITT,
  19654.  ECMA, and the IEEE.
  19655.  
  19656.  
  19657.  
  19658.  
  19659.               Copyright (c) 1991 IEEE.  All rights reserved.
  19660.       This is an unapproved IEEE Standards Draft, subject to change.
  19661.  
  19662.  
  19663.  
  19664.  
  19665.  278                                C Standards Infrastructure Description
  19666.  
  19667.  
  19668.  
  19669.  
  19670.  
  19671.  
  19672.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  19673.  
  19674.  For further information, contact the National Institute of Standards and
  19675.  Technology, Gaithersburg, MD 20899, Telephone:  (301) 975-2000.            e
  19676.  
  19677.  _T_1
  19678.  
  19679.  T1, established in 1984, is an ANSI-accredited standards body that is
  19680.  developing standards and technical reports.  The standards and reports
  19681.  are intended to support interconnection and interoperability of
  19682.  telecommunications networks at interfaces with end-user systems,
  19683.  carriers, information and enhanced-service providers, and customer
  19684.  premises equipment.
  19685.  
  19686.  Six T1 technical subcommittees are currently developing these standards
  19687.  and reports under the T1 Advisory Group.  The subcommittees also
  19688.  recommend positions on matters under consideration by other North
  19689.  American and international standards bodies.
  19690.  
  19691.  T1 Membership and full participation is available to all interested
  19692.  parties.  For further information, contact Alvin Lai, Exchange Carriers
  19693.  Standards Association, c/o T1 Secretariat, 5430 Grosvenor Lane, Suite
  19694.  200, Bethesda, Maryland 20814-2122, or call (301) 654-4505.
  19695.  
  19696.  _X_3
  19697.  
  19698.  X3, established in 1961, is an ANSI-accredited standards body that
  19699.  develops computer, information processing, and office systems standards.
  19700.  X3 also participates in the development of international standards in
  19701.  these areas.  In addition, it serves as a Technical Advisory Group (TAG)
  19702.  to ANSI for most of the subcommittees working on international
  19703.  standardization projects within JTC1.  The Computer and Business
  19704.  Equipment Manufacturers Association (CBEMA) functions as X3's
  19705.  secretariat.
  19706.  
  19707.  X3 membership is open to all organizations, upon payment of a service
  19708.  fee.  The current membership includes computer manufacturers,
  19709.  communications carriers, user groups, and government agencies.  More than
  19710.  3200 volunteers from these organizations participate in the X3 standards
  19711.  work.  They are organized into about 85 technical groups, working on 700
  19712.  projects.
  19713.  
  19714.  Three standing committees report to X3:  the Standards Planning and
  19715.  Requirements Committee (SPARC), the Strategic Planning Committee (SPC),
  19716.  and the Secretariat Management Committee (SMC).  The following are the
  19717.  major X3 technical committees:
  19718.  
  19719.     Recognition
  19720.  
  19721.           X3A1     Optical Character Recognition
  19722.  
  19723.  
  19724.  
  19725.               Copyright (c) 1991 IEEE.  All rights reserved.
  19726.       This is an unapproved IEEE Standards Draft, subject to change.
  19727.  
  19728.  
  19729.  
  19730.  
  19731.  C.2 The Formal Standards Groups                                       279
  19732.  
  19733.  
  19734.  
  19735.  
  19736.  
  19737.  
  19738.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  19739.  
  19740.     Media
  19741.  
  19742.           X3B5     Digital Magnetic Tape
  19743.  
  19744.           X3B6     Instrumentation Tape
  19745.  
  19746.           X3B7     Magnetic Disks
  19747.  
  19748.           X3B8     Flexible Disk Cartridges
  19749.  
  19750.           X3B9     Paper/Forms Layout
  19751.  
  19752.           X3B10    Credit/Identification Cards
  19753.  
  19754.           X3B11    Optical Digital Data Disks
  19755.  
  19756.     Data Management and Graphics
  19757.  
  19758.           X3H2     Database
  19759.  
  19760.           X3H3     Computer Graphics
  19761.  
  19762.           X3H3.6   Windowing Interfaces
  19763.  
  19764.           X3H4     Information Resource & Dictionary
  19765.  
  19766.     Languages
  19767.  
  19768.           X3J1     PL/1
  19769.  
  19770.           X3J2     Basic
  19771.  
  19772.           X3J3     Fortran
  19773.  
  19774.           X3J4     COBOL
  19775.  
  19776.           X3J7     APT
  19777.  
  19778.           X3J9     Pascal
  19779.  
  19780.           X3J10    APL
  19781.  
  19782.           X3J11    C
  19783.  
  19784.           X3J12    Dibol
  19785.  
  19786.           X3J13    Common Lisp
  19787.  
  19788.  
  19789.  
  19790.  
  19791.               Copyright (c) 1991 IEEE.  All rights reserved.
  19792.       This is an unapproved IEEE Standards Draft, subject to change.
  19793.  
  19794.  
  19795.  
  19796.  
  19797.  280                                C Standards Infrastructure Description
  19798.  
  19799.  
  19800.  
  19801.  
  19802.  
  19803.  
  19804.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  19805.  
  19806.           X3J14    Forth
  19807.  
  19808.           X3J15    Databus
  19809.  
  19810.     Documentation
  19811.  
  19812.           X3K1     Computer Documentation
  19813.  
  19814.           X3K5     Vocabulary
  19815.  
  19816.     Data Representation
  19817.  
  19818.           X3L2     Codes and Character Sets
  19819.  
  19820.           X3L5     Labels and file Structure
  19821.  
  19822.           X3L8     Data Representation
  19823.  
  19824.     Communication
  19825.  
  19826.           X3S3     Data Communications
  19827.  
  19828.     Systems Technology
  19829.  
  19830.           X3T1     Data Encryption
  19831.  
  19832.           X3T2     Data Interchange
  19833.  
  19834.           X3T5     Open Systems Interconnection
  19835.  
  19836.           X3T9     I/O Interface
  19837.  
  19838.     Text
  19839.  
  19840.           X3V1     Office and Publishing Systems
  19841.  
  19842.  For more information, contact CBEMA, c/o X3 Secretariat, 311 First Street
  19843.  NW, Suite 500, Washington, DC 20001-2178, Telephone:  (212) 626-5740.
  19844.  
  19845.  
  19846.  
  19847.  C.3  Related Organizations                                                 e
  19848.  
  19849.  The following organizations are some of the major trade associations,
  19850.  user groups, and professional bodies active in either promoting,
  19851.  implementing, or reviewing information technology standards.
  19852.  
  19853.                                                                             e
  19854.  
  19855.  
  19856.  
  19857.               Copyright (c) 1991 IEEE.  All rights reserved.
  19858.       This is an unapproved IEEE Standards Draft, subject to change.
  19859.  
  19860.  
  19861.  
  19862.  
  19863.  C.3 Related Organizations                                             281
  19864.  
  19865.  
  19866.  
  19867.  
  19868.  
  19869.  
  19870.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  19871.  
  19872.  _C_B_E_M_A_:__C_o_m_p_u_t_e_r__a_n_d__B_u_s_i_n_e_s_s__E_q_u_i_p_m_e_n_t__M_a_n_u_f_a_c_t_u_r_e_r_s__A_s_s_o_c_i_a_t_i_o_n
  19873.  
  19874.  CBEMA is a trade organization whose primary function is to represent
  19875.  large manufacturers of hardware-based information technologies equipment
  19876.  in lobbying about public policy.  In addition, it provides education
  19877.  programs, information exchange forums, and deals with the industry's
  19878.  public image.
  19879.  
  19880.  CBEMA has long had an interest in standards.  It serves as the
  19881.  secretariat for X3.  It also offers a standards and technology program
  19882.  where its members can exchange information on standards issues and
  19883.  industry standards.
  19884.  
  19885.  CBEMA's members are mostly large manufacturers because its dues are tied
  19886.  to corporate revenues and structured in a way that makes it too expensive
  19887.  for small companies to join.  Members are either American companies or US
  19888.  subsidiaries of non-American companies.
  19889.  
  19890.  For more information, contact CBEMA, 311 First Street, NW, Suite 500,
  19891.  Washington, DC 20001-2178, Telephone: (202) 626-5740.
  19892.  
  19893.  _C_O_D_A_S_Y_L_:__T_h_e__C_o_n_f_e_r_e_n_c_e__o_n__D_a_t_a__S_y_s_t_e_m_s__L_a_n_g_u_a_g_e_s
  19894.  
  19895.  The Conference on Data Systems Language (CODASYL) has been active since
  19896.  1960 in the development of the COBOL language, through its COBOL
  19897.  Committee (CC).  Since 1969, it also has been active in the development
  19898.  of a common Data Description Language for defining schemas and
  19899.  subschemas, and in a data manipulation language, through the DBTG Data
  19900.  Base Task Group of the CC.  The activities of the CC are documented in
  19901.  the COBOL Journal of Development, which serves as the official COBOL
  19902.  language specification.
  19903.  
  19904.  In 1969, ANSI (then the United States of America Standards Institute)
  19905.  issued the first COBOL standard.  At that time, the X3.4 committee stated
  19906.  that X3.4 recognizes the CODASYL COBOL Committee as the development and
  19907.  maintenance authority for COBOL.  In practice, this meant that ANSI
  19908.  agreed not to make any changes to the CODASYL-defined language
  19909.  specification.  Although this agreement has been challenged over the
  19910.  years, the CODASYL-ANSI agreement is still strong.  As a result, the
  19911.  CODASYL has enormous influence upon the COBOL language.
  19912.  
  19913.  Toward the end of 1971, a new CODASYL committee was established--the Data
  19914.  Description Language Committee (DDLC).  The DDLC was formed to serve the
  19915.  same functions for the schema DDL as the CC does for COBOL.  That is,
  19916.  since the schema DDL is a conceptual schema and network-model database
  19917.  language for use with many programming languages, not just COBOL, the
  19918.  DDLC continues the schema DDL development and publishes its own Journal
  19919.  of Development documenting the language's current status.
  19920.  
  19921.  
  19922.  
  19923.               Copyright (c) 1991 IEEE.  All rights reserved.
  19924.       This is an unapproved IEEE Standards Draft, subject to change.
  19925.  
  19926.  
  19927.  
  19928.  
  19929.  282                                C Standards Infrastructure Description
  19930.  
  19931.  
  19932.  
  19933.  
  19934.  
  19935.  
  19936.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  19937.  
  19938.  The COBOL DML and subschema DDL (for defining an external view) of the
  19939.  DBTG are COBOL-specific and have remained part of the CC under the name
  19940.  ``The COBOL Data Base Facility.''
  19941.  
  19942.  The CODASYL membership is composed of voluntary representatives, mostly
  19943.  from computer manufacturers and users in industry and the US Federal
  19944.  government.
  19945.  
  19946.  _C_O_S_:__C_o_r_p_o_r_a_t_i_o_n__f_o_r__O_p_e_n__S_y_s_t_e_m_s
  19947.  
  19948.  COS is a US-based, international, nonprofit association of vendors and
  19949.  users, formed in 1985 to promote and accelerate the adoption of
  19950.  interoperable, multivendor products and services based on OSI and ISDN
  19951.  standards.  To accomplish its goals, COS provides a user-vendor forum for
  19952.  the statement of user requirements and the discussion and management of
  19953.  the issues surrounding the deployment of open systems.  COS also
  19954.  identifies test requirements, and sponsors test tools development and
  19955.  conformance and interoperability testing to verify that computer products
  19956.  and services conform to OSI or ISDN standards.
  19957.  
  19958.  COS's membership consists of more than 60 prominent manufacturer, user,
  19959.  and telecommunication service organizations worldwide.  COS cooperates
  19960.  with similar organizations such as SPAG Services in Europe and POSI in
  19961.  Japan.  Other key groups in the worldwide promotion, implementation and
  19962.  testing of OSI and ISDN standards are affiliated with COS under its
  19963.  Alliance Associate program.
  19964.  
  19965.  For further information, contact the Corporation for Open Systems, 1750
  19966.  Old Meadow Road, Suite 400, McLean, VA 22102-4306, USA, Telephone:
  19967.  (703) 883-2700, Fax:  (703) 848-8933.  In Europe contact Corporation for
  19968.  Open Systems, Avenue des Arts 1-2, bte 11, 1040 Bruxelles, Belgique,
  19969.  Telephone:  32 2 210 08 11, Fax:  32 2 210 08 00.
  19970.  
  19971.                                                                             e
  19972.  
  19973.  _E_P_R_I_:__E_l_e_c_t_r_i_c__P_o_w_e_r__R_e_s_e_a_r_c_h__I_n_s_t_i_t_u_t_e
  19974.  
  19975.  The Electric Power Research Institute's (EPRI) is an industry association
  19976.  concerned with electric power utilities.  Its membership comprises more
  19977.  than 673 publicly and privately owned utilities in the United States.
  19978.  Besides providing a variety of utility-specific services to its
  19979.  membership, EPRI's latest mission is to facilitate the use of open
  19980.  systems technology in the utility industry.
  19981.  
  19982.  Toward this end, EPRI has developed a Utilities Communication
  19983.  Architecture (UCA), which is similar to the National Institute for
  19984.  Standards and Technology's (NIST) Government Open Systems Interconnect
  19985.  Profile (GOSIP) Version 2.0.  Much of the UCA was developed by EPRI with
  19986.  the cooperation of Honeywell and Anderson Consulting.
  19987.  
  19988.  
  19989.               Copyright (c) 1991 IEEE.  All rights reserved.
  19990.       This is an unapproved IEEE Standards Draft, subject to change.
  19991.  
  19992.  
  19993.  
  19994.  
  19995.  C.3 Related Organizations                                             283
  19996.  
  19997.  
  19998.  
  19999.  
  20000.  
  20001.  
  20002.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  20003.  
  20004.  EPRI's specific open system interests span realtime UNIX, expert systems,
  20005.  and database access using RDA and SQL.  Because of the financial
  20006.  structure of the utilities industry, EPRI wants to encourage these and
  20007.  other open systems technologies for equipment with a 12 to 15 year life
  20008.  cycle.
  20009.  
  20010.  For further information, contact EPRI's headquarters at 3412 Hillview
  20011.  Avenue, P.O.  Box 10412, Palo Alto, CA 94303, Telephone:  (415) 934-4212.
  20012.  
  20013.  _E_S_P_R_I_T (_E_u_r_o_p_e_a_n _S_t_r_a_t_e_g_i_c _P_r_o_g_r_a_m_m_e _f_o_r _R_e_s_e_a_r_c_h _a_n_d _D_e_v_e_l_o_p_m_e_n_t _i_n
  20014.  _I_n_f_o_r_m_a_t_i_o_n _T_e_c_h_n_o_l_o_g_y)
  20015.  
  20016.  The European Strategic Programme for Research and development in
  20017.  Information Technology is a European research programme initiative,
  20018.  started in 1982 and sponsored by the Commission of the European
  20019.  Communities.  About 227 projects were implemented during the first phase
  20020.  of the project in five major work areas:  advanced microelectronics,
  20021.  software engineering and technology, advanced information processing,
  20022.  office automation, and computer integrated manufacturing.
  20023.  
  20024.  Nearly thirty projects have enabled substantial advances to be made in
  20025.  establishing internationally recognized standards.  Examples of the
  20026.  Portable Communications Tool Environment (PCTE) project, the
  20027.  Communication Network for Manufacturing Applications (CNMA) project, and
  20028.  the Herode project, which has prepared an Office Document Architecture
  20029.  standard for adoption as an ISO standard.
  20030.  
  20031.  The second phase of the Esprit programme will be concerned mainly with
  20032.  three areas--microelectronics and peripheral technologies; the creation
  20033.  of technologies and tools for the design of information processing
  20034.  systems; and enhancing the capacity for using and integrating information
  20035.  technology to extend the scope of its applications.
  20036.  
  20037.  For further information contact ESPRIT, Director General, DG XIII, CEC,
  20038.  rue de la Loi 200, B-1049 Brussels, Belgium, Telephone:
  20039.  (32 2) 235 11 11, and Telex:  21877 comeu b.
  20040.  
  20041.  _E_T_S_I_:__E_u_r_o_p_e_a_n__T_e_l_e_c_o_m_m_u_n_i_c_a_t_i_o_n_s__S_t_a_n_d_a_r_d_s__I_n_s_t_i_t_u_t_e
  20042.  
  20043.  The European Telecommunications Standards Institute (ETSI), founded in
  20044.  1988, is a voluntary standards organization involved in producing the
  20045.  telecommunications standards necessary to achieve a European unified
  20046.  market.  ETSI was established outside the CEN/CENELEC framework.  ETSI,
  20047.  however, works with CEN, CENELEC, and the European Broadcasting Union
  20048.  (EBU) in areas of mutual interest.
  20049.  
  20050.  ETSI's voting membership consists of postal administrations, along with
  20051.  manufacturers and trade associations, in each of the CEPT countries.
  20052.  Membership is not restricted to official representatives of member
  20053.  
  20054.  
  20055.               Copyright (c) 1991 IEEE.  All rights reserved.
  20056.       This is an unapproved IEEE Standards Draft, subject to change.
  20057.  
  20058.  
  20059.  
  20060.  
  20061.  284                                C Standards Infrastructure Description
  20062.  
  20063.  
  20064.  
  20065.  
  20066.  
  20067.  
  20068.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  20069.  
  20070.  countries.  The United States and US companies have been granted observer
  20071.  status.
  20072.  
  20073.  Standards approved by ETSI are voluntary standards known as ETS (European
  20074.  Telecommunications Standards).  ETSI also conducts prestandardization
  20075.  studies, develops technical reports and guidelines, holds conferences,
  20076.  workshops, seminars, and conducts interviews.  ETSI's interim standards
  20077.  are designated I-ETS.
  20078.  
  20079.  For further information, contact the European Telecommunications
  20080.  Standards Institute, B.P.  No.  52, F-06561 Valbonne CEDEX, France,
  20081.  Telephone:  (33 92) 94 42 00, Telex:  470 040 F, and Fax Number:
  20082.  (33 93) 65 47 16.
  20083.  
  20084.  _E_W_O_S_:__E_u_r_o_p_e_a_n__W_o_r_k_s_h_o_p__f_o_r__O_p_e_n__S_y_s_t_e_m_s
  20085.  
  20086.  The EWOS is an ongoing regional workshop, formed in 1987, to provide and
  20087.  coordinate European input to the international standard profiles process.
  20088.  It was formed as the result of an initiative of SPAG, in conjunction with  e
  20089.  CEN/CENELEC.                                                               e
  20090.  
  20091.  EWOS is the focal point in Europe for the study and development of OSI
  20092.  profiles and corresponding conformance test specifications.  EWOS
  20093.  documents have only to be submitted to public enquiry by CEN and CENELEC
  20094.  before becoming European norms.                                            e
  20095.  
  20096.  For further information contact European Workshop on Open Systems (EWOS),
  20097.  rue de Brederode 13, B-1000 Brussels, Belgium, Telephone:
  20098.  32 2 511 74 55.
  20099.  
  20100.                                                                             e
  20101.  
  20102.  _I_N_T_A_P (_I_n_t_e_r_o_p_e_r_a_b_i_l_i_t_y _T_e_c_h_n_o_l_o_g_y _A_s_s_o_c_i_a_t_i_o_n _f_o_r _I_n_f_o_r_m_a_t_i_o_n
  20103.  _P_r_o_c_e_s_s_i_n_g)
  20104.  
  20105.  The Interoperability Technology Association for Information Processing,
  20106.  in Japan, is a national agency, funded by MITI.  It deals with
  20107.  information technology, and specifically OSI products and advanced
  20108.  projects.  INTAP is developing and providing conformance testing tools
  20109.  and services in Japan in cooperation with POSI.
  20110.  
  20111.  _M_A_P/_T_O_P _U_s_e_r _G_r_o_u_p: (_M_a_n_u_f_a_c_t_u_r_i_n_g _A_u_t_o_m_a_t_i_o_n _P_r_o_t_o_c_o_l _a_n_d _T_e_c_h_n_i_c_a_l _a_n_d
  20112.  _O_f_f_i_c_e _P_r_o_t_o_c_o_l)
  20113.  
  20114.  The MAP Task Force was formed in 1980 by engineers from seven General
  20115.  Motors (GM) divisions, to identify a common OSI-based networking standard
  20116.  for plant-floor systems.  The Task Force grew to include all GM
  20117.  divisions, many other users, and many vendors.  Its specifications are
  20118.  known as Manufacturing Automation Protocol (MAP).
  20119.  
  20120.  
  20121.               Copyright (c) 1991 IEEE.  All rights reserved.
  20122.       This is an unapproved IEEE Standards Draft, subject to change.
  20123.  
  20124.  
  20125.  
  20126.  
  20127.  C.3 Related Organizations                                             285
  20128.  
  20129.  
  20130.  
  20131.  
  20132.  
  20133.  
  20134.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  20135.  
  20136.  The MAP specifications mostly reference OSI standards, but they also draw
  20137.  on ANSI, IEEE, EIA, CCITT, and various industry standards.  Where
  20138.  standards do not exist, as in the case of the manufacturing messaging
  20139.  protocol, the MAP Task Force is either defining its own or instigating
  20140.  their formation by industry standards bodies.
  20141.  
  20142.  In 1984, the MAP Users Group was formed, under the auspices of GM, with
  20143.  the Society of Manufacturing Engineers as its Secretariat.  Its objective
  20144.  is to promote knowledge and use of MAP, and to insure input from users.
  20145.  
  20146.  In 1985, Boeing sponsored a similar effort to specify common networking
  20147.  protocols, known as the Technical and Office Protocols (TOP), for the
  20148.  engineering and business offices.  TOP is largely compatible with MAP,
  20149.  differing only at the lower two layers and the application layer where
  20150.  TOP addresses requirements of the technical and office user, rather than
  20151.  factory users.
  20152.  
  20153.  Later in 1985, a TOP Users Group was formed.  The entire effort became an
  20154.  international effort known as MAP/TOP, and the user group became the
  20155.  MAP/TOP User Group, which meets twice a year.
  20156.  
  20157.  Today, the MAP/TOP User Group is an independent, self-funded organization
  20158.  that represents thousands of users worldwide, tied together through a
  20159.  worldwide federation of MAP/TOP user groups.  Membership is open to
  20160.  either users or companies.  The Industry Cooperative Services (ICS) is
  20161.  the worldwide secretariat.  The MAP/TOP User Group also is a member of
  20162.  the Corporation for Open Systems (COS) and in North America, COS acts as
  20163.  the MAP/TOP User Group secretariat.
  20164.  
  20165.  The MAP/TOP User Group is a Requirements Interest Group (RIG) of the
  20166.  Corporation for Open Systems (COS).  This means that the MAP/TOP User
  20167.  Group generates requirements that vendors can use to built products.  COS
  20168.  serves as the coordinator between users and vendors.
  20169.  
  20170.  The MAP/TOP Task Force and User Group also is a major contributor of
  20171.  technical and conceptual ideas and specifications to the NIST, COS, and
  20172.  many of the IEEE POSIX Groups.
  20173.  
  20174.  For further information contact the World Federation of MAP/TOP Users
  20175.  Groups, P.O.  Box 1457, Ann Arbor, MI 48106, Telephone:  (313) 769-4571,
  20176.  Fax:  (313) 769-4064.  In North America, also contact the Corporation for
  20177.  Open Systems at 1750 Old Meadow Road, Suite 400, McLean, VA 22102-4306,
  20178.  Telephone: (703) 883-2700, Fax:  (703) 848-8933.
  20179.  
  20180.                                                                             e
  20181.  
  20182.  
  20183.  
  20184.  
  20185.  
  20186.  
  20187.               Copyright (c) 1991 IEEE.  All rights reserved.
  20188.       This is an unapproved IEEE Standards Draft, subject to change.
  20189.  
  20190.  
  20191.  
  20192.  
  20193.  286                                C Standards Infrastructure Description
  20194.  
  20195.  
  20196.  
  20197.  
  20198.  
  20199.  
  20200.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  20201.  
  20202.  _N_e_t_w_o_r_k__M_a_n_a_g_e_m_e_n_t__F_o_r_u_m
  20203.  
  20204.  A vendor-driven group, the Network Management Forum is chartered to
  20205.  produce a commonly agreed-upon specification subset of ISO's network
  20206.  management protocols and the command sets to implement this subset.  The
  20207.  promise of the NMF is that all of the network management products that
  20208.  its members come up with will conform to this common specification.
  20209.  
  20210.  The NMF itself will produce no products nor will it specify
  20211.  implementations.  Rather, the NMF will specify interfaces.
  20212.  
  20213.  Major vendors belong to the NMF from both the computer and                 e
  20214.  telecommunications industries.  The NMF has published Release 1 of its     e
  20215.  specifications (1990).  Member firms are developing products that conform
  20216.  to Release 1.
  20217.  
  20218.  NMF information may be had from the organization at 40 Morristown Road,
  20219.  Bernardsville, NJ 07924.  Telephone:  (201) 766-1544.
  20220.  
  20221.  _N_P_S_C_:__N_a_t_i_o_n_a_l__P_r_o_t_o_c_o_l__S_u_p_p_o_r_t__C_e_n_t_e_r
  20222.  
  20223.  An Australian organization, the National Protocol Support Center was
  20224.  formed in 1986 as a joint effort between industry and the government.
  20225.  Like SPAG, COS, and POSI, the NPSC is promoting the adoption of OSI
  20226.  standards in information technology products and will be supporting a
  20227.  conformance testing capability in Australia.  The Australian government,
  20228.  however, provides approximately 50 percent of the NPSC funding.  For
  20229.  further information, contact (contact address and other information TBD).
  20230.  
  20231.  _O_b_j_e_c_t__M_a_n_a_g_e_m_e_n_t__G_r_o_u_p
  20232.  
  20233.  Founded in 1989 and headquartered in Framingham, MA, with marketing
  20234.  operations in Boulder, CO, the Object Management Group (OMG) is an
  20235.  international organization of more than 146 systems vendors, software
  20236.  developers and users.  The OMG was founded to promote the theory and
  20237.  practice of object management technology in the development of software.
  20238.  
  20239.  The OMG's goal is to develop a common framework, based on industry-
  20240.  derived guidelines, that is suitable for object-oriented applications.
  20241.  The adoption of this framework will make it possible to develop a
  20242.  heterogeneous applications environment across all major hardware and
  20243.  operating systems.
  20244.  
  20245.  The OMG members are quick to form a consensus on certain object
  20246.  management issues because they see these issues directly affecting their
  20247.  software sales.  For example, the OMG's object request broker design--key
  20248.  software needed to allow disparate open systems to request object
  20249.  services from remote sites--is supported by most major object-oriented     e
  20250.  software vendors.                                                          e
  20251.  
  20252.  
  20253.               Copyright (c) 1991 IEEE.  All rights reserved.
  20254.       This is an unapproved IEEE Standards Draft, subject to change.
  20255.  
  20256.  
  20257.  
  20258.  
  20259.  C.3 Related Organizations                                             287
  20260.  
  20261.  
  20262.  
  20263.  
  20264.  
  20265.  
  20266.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  20267.  
  20268.  Further information is available from the OMG at 492 Old Connecticut
  20269.  Path, Framingham, MA 01701.  Telephone:  (508) 820-4300.
  20270.  
  20271.  _O_S_F_:__O_p_e_n__S_o_f_t_w_a_r_e__F_o_u_n_d_a_t_i_o_n
  20272.  
  20273.  The Open Software Foundation is a nonprofit, international consortium.     e
  20274.  Its goals include the development of software specifications and test      e
  20275.  suites for an open computing environment.                                  e
  20276.  
  20277.  OSF specifications are defined, and software developed, using an open
  20278.  process into which vendors and users have input and access.  The           e
  20279.  resulting AES specifications will be available in the public domain, and   e
  20280.  the software licensable, to OSF members and nonmembers, under identical    e
  20281.  terms.  Both members and nonmembers can also submit technologies to the    e
  20282.  OSF for consideration as an OSF specification and/or offering.  OSF's
  20283.  specifications and software will be based on the ISO/IEC 9945-1 core       e
  20284.  POSIX standard (POSIX.1 {2}), a variety of international, national, and    e
  20285.  industry standards and other consortia specifications.  The remainder of   e
  20286.  OSF software and specifications will be based on technologies contributed  e
  20287.  by numerous companies and universities as part of OSF's Request for        e
  20288.  Technology (RFT) process.                                                  e
  20289.  
  20290.  OSF active-participation membership is open to user organizations,         e
  20291.  computer hardware and software suppliers, government agencies,             e
  20292.  educational institutions, and other interested organizations worldwide.
  20293.  For further information, contact OSF at Eleven Cambridge Center,
  20294.  Cambridge, MA, Telephone:  (617) 621-8700.  Alternatively, contact
  20295.  European headquarters at Open Software Foundation/Europe, Stefan-George-
  20296.  Ring 29, 8000 Munich 81, Germany, Telephone:  (49 89) 930 920, or Open
  20297.  Software Foundation/Japan, ABS Building, 2-4-16 Kudan Minami, Chiyoda-Ku,
  20298.  Tokyo 102, Japan, (81 3) 3 221 9770.
  20299.  
  20300.  _P_e_t_r_o_t_e_c_h_n_i_c_a_l__O_p_e_n__S_o_f_t_w_a_r_e__C_o_r_p_o_r_a_t_i_o_n                                   e
  20301.  
  20302.  Founded in October, 1990, the Petrotechnical Open Software Corporation     e
  20303.  (POSC) was started by BP Exploration, Chevron, Elf Aquitane, Mobil and
  20304.  Texaco to facilitate the development of integrated computing technology
  20305.  for the exploration and production (E & P) segment of the international
  20306.  petroleum industry.  Today, membership is open to all entities interested
  20307.  in the E & P industry.  These members include other petroleum companies,
  20308.  E & P service companies, software vendors, computer manufacturers, and
  20309.  research institutes.
  20310.  
  20311.  POSC's primary mission is the development of an industry-standard, open
  20312.  systems-based, software integration profile for E & P applications.  This
  20313.  platform will be the interface between petrochemical software
  20314.  applications, database management systems, workstations and users.  POSC
  20315.  activities focus on the development of an integrated E & P data model, a
  20316.  common look and feel user front-end, and a set of test suites enabling
  20317.  
  20318.  
  20319.               Copyright (c) 1991 IEEE.  All rights reserved.
  20320.       This is an unapproved IEEE Standards Draft, subject to change.
  20321.  
  20322.  
  20323.  
  20324.  
  20325.  288                                C Standards Infrastructure Description
  20326.  
  20327.  
  20328.  
  20329.  
  20330.  
  20331.  
  20332.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  20333.  
  20334.  developers to evaluate their offerings against selected industry
  20335.  standards.
  20336.  
  20337.  POSC is moving quickly and has sent out two public requests for inputs in
  20338.  several technical areas.  Project teams for base standards, the E & P
  20339.  data model, and data access are in place.  Staffing is in progress for
  20340.  other projects and special interest groups have been formed.  POSC
  20341.  offerings will be released to industry for production over the next few
  20342.  years.
  20343.  
  20344.  POSC is headquartered in Houston, TX at 10777 Westheimer, Suite 275,
  20345.  Houston, 77042.  Telephone:  (713) 784-1880.
  20346.  
  20347.  _P_O_S_I_:__P_r_o_m_o_t_i_n_g__C_o_n_f_e_r_e_n_c_e__f_o_r__O_S_I
  20348.  
  20349.  The Promoting Conference for OSI was formed in Japan in November 1985 by
  20350.  six major computer manufacturers and the Nippon Telephone and Telegraph
  20351.  Corporation.  Its raison d'etre is to promote the adoption of OSI
  20352.  standards by cooperating with other international groups that have the
  20353.  same objective, such as the European-based SPAG and the US-based COS.
  20354.  But conformance testing in Japan is being developed and will be provided
  20355.  by the INTAP.
  20356.  
  20357.  For further information, contact (contact information TBD).
  20358.  
  20359.  _S_P_A_G_:__S_t_a_n_d_a_r_d_s__P_r_o_m_o_t_i_o_n__a_n_d__A_p_p_l_i_c_a_t_i_o_n__G_r_o_u_p
  20360.  
  20361.  The Standards Promotion and Application Group (SPAG), founded in 1983, is
  20362.  a nonprofit, international research and development consortium of about
  20363.  65 information technology manufacturers and users.  In 1986, it became a
  20364.  company registered under Belgian law as SPAG Services s.a.  SPAG's goals
  20365.  are to promote multivendor, interoperable products based on international
  20366.  standards, particularly OSI, and to keep its members informed about the
  20367.  latest developments in functional standards and conformance testing of
  20368.  products.
  20369.  
  20370.  To achieve its goals, SPAG plays a leading role in the European Workshop
  20371.  on Open Systems (EWOS), publishes the Guide to the Use of Standards (GUS)
  20372.  regularly, and participates in the development of International Standard
  20373.  Profiles (ISPs).  SPAG is particularly active in the development and
  20374.  marketing of test tools for manufacturing applications.  Through its
  20375.  SPAG-CCT efforts, (a collaboration of European organizations) which arose
  20376.  out of the ESPRIT Project 955, SPAG is developing, and will be providing,
  20377.  conformance test tools for testing MAP/TOP 3.0, and conformance testing
  20378.  services to industry.
  20379.  
  20380.  SPAG also is working within Europe to implement the certification
  20381.  infrastructure for OSI products, and is involved in a number of
  20382.  Conformance Test Services (CTS) projects within the Commission of
  20383.  
  20384.  
  20385.               Copyright (c) 1991 IEEE.  All rights reserved.
  20386.       This is an unapproved IEEE Standards Draft, subject to change.
  20387.  
  20388.  
  20389.  
  20390.  
  20391.  C.3 Related Organizations                                             289
  20392.  
  20393.  
  20394.  
  20395.  
  20396.  
  20397.  
  20398.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  20399.  
  20400.  European Communities (CEC).  In addition, SPAG is active in
  20401.  Telecommunications areas and is leading a consortium developing
  20402.  verification services for the Broadband Networks project RACE.
  20403.  
  20404.  Twelve shareholder companies make up SPAG's board of directors.  The
  20405.  original founding companies--Bull, ICL, Nixdorf, Olivetti, Philips,
  20406.  Siemens, and STET--occupy seven seats on SPAG's twelve member board.  The
  20407.  shareholder membership was subsequently expanded to include Alcatel,
  20408.  British Telecom, Digital Equipment Corp., Hewlett-Packard, and IBM, who
  20409.  occupy the five remaining board seats.
  20410.  
  20411.  SPAG has close working relationships with its counterparts in North
  20412.  America (COS) and the Far East (POSI).
  20413.  
  20414.  For further information, contact Graham Knight, at SPAG Services s.a.,
  20415.  Standards Promotion and Application Group (SPAG), Avenue des Arts, 1-2
  20416.  bte 11, 1040 Brussels, Belgium, Telephone:  32 2 210 08 11, Fax
  20417.  32 2 210 08 00.
  20418.  
  20419.  _S_Q_L__A_c_c_e_s_s__G_r_o_u_p
  20420.  
  20421.  The SQL Access Group is a vendor group formed by a number of people in
  20422.  the ISO Remote Data Access (RDA) Group.
  20423.  
  20424.  The SQL Access Group's charter is several fold.  First, the Group is
  20425.  chartered to define a common subset of SQL functions to reconcile the      e
  20426.  many SQLs that exist.  The specifications will include an SQL data
  20427.  format, as well as protocols for moving data within a multivendor SQL
  20428.  environment.  Also included will be specifications for an enhanced SQL
  20429.  programming interface that will let developers write a single application
  20430.  that can access a variety of SQL databases.  These SQL Access
  20431.  specifications are scheduled to be published in late 1991.
  20432.  
  20433.  The SQL Access Group's second charter is to accelerate the work of the
  20434.  RDA group.  Third, the SQL Access Group is working on putting more
  20435.  distributed functionality into RDA.  Toward this end, each thing
  20436.  accomplished by the SQL Access group is fed back into the RDA group.
  20437.  
  20438.  For further information, contact the SQL Access Group at (Address TBD).
  20439.  
  20440.  _U_n_i_F_o_r_u_m                                                                   e
  20441.  
  20442.  UniForum is a nonprofit international association of open systems          e
  20443.  professionals.  Founded in 1980 as /usr/group, the association has,        e
  20444.  through its standards committees and technical committees, provided        e
  20445.  contributions to various standards and continues to be involved in the     e
  20446.  formal standards development process.  The specifications and standards    e
  20447.  to which UniForum has contributed include:                                 e
  20448.  
  20449.  
  20450.  
  20451.               Copyright (c) 1991 IEEE.  All rights reserved.
  20452.       This is an unapproved IEEE Standards Draft, subject to change.
  20453.  
  20454.  
  20455.  
  20456.  
  20457.  290                                C Standards Infrastructure Description
  20458.  
  20459.  
  20460.  
  20461.  
  20462.  
  20463.  
  20464.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  20465.  
  20466.      - The 1984 /usr/group Standard was contributed as a base document for  e
  20467.        the IEEE P1003.1 work.                                               e
  20468.  
  20469.      - The UniForum Technical Committee on Real Time meets jointly with     e
  20470.        the IEEE P1003.4 working group, working on the emerging POSIX        e
  20471.        realtime standards.                                                  e
  20472.  
  20473.      - The UniForum Technical Committee on Supercomputing evolved into the  e
  20474.        IEEE P1003.10 working group.                                         e
  20475.  
  20476.      - The UniForum Technical Committee on Transaction Processing evolved   e
  20477.        into the IEEE P1003.11 working group.                                e
  20478.  
  20479.      - The UniForum Technical Committee on Internationalization has         e
  20480.        contributed specifications to the IEEE P1003.1 and P1003.2 working   e
  20481.        groups and the ANSI X3J11 standard C committee and continues to be   e
  20482.        a technical resource for both formal and informal standards          e
  20483.        development bodies.                                                  e
  20484.  
  20485.  _U_N_I_X__I_n_t_e_r_n_a_t_i_o_n_a_l_/_U_N_I_X__S_y_s_t_e_m__L_a_b_o_r_a_t_o_r_i_e_s                                e
  20486.  
  20487.  UNIX International (UI) is a nonprofit industry organization formed to     e
  20488.  represent hardware manufacturers, system integrators, independent
  20489.  software vendors, value-added resellers, end-users, government agencies
  20490.  worldwide, industry standards bodies, and academic and research
  20491.  institutions who want to direct the evolution of System V UNIX and its     e
  20492.  corresponding specification, the _S_y_s_t_e_m _V _I_n_t_e_r_f_a_c_e _D_e_f_i_n_i_t_i_o_n (SVID).     e
  20493.  It has since expanded its scope to provide a framework for UNIX-based      e
  20494.  open systems work in the areas of desktop computing, corporate hub
  20495.  computing, distributed computing, and an enterprise-wide framework known   e
  20496.  as ``Atlas.''                                                              e
  20497.  
  20498.  Unlike X/Open, OSF, AT&T, and the IEEE, UI does not produce
  20499.  specifications, software, or standards.  Its functions range from
  20500.  specifying technical and timing requirements for future System V versions
  20501.  and making suggestions about specific function designs to influencing
  20502.  AT&T UNIX licensing policies.
  20503.  
  20504.  Using its ``one-member, one-vote'' approach, UI members formulate a
  20505.  consensus regarding the requirements and technical specifications for new
  20506.  System V UNIX versions.  UI delivers its requirements to UNIX System
  20507.  Laboratories (USL), the AT&T spinoff that develops, distributed, and
  20508.  licenses UNIX.  UI is USL's primary input source on technical
  20509.  requirements, conformance, and timing of releases.  USL is committed to
  20510.  implement software to satisfy UI's requirements, unless there is a reason
  20511.  not to.
  20512.  
  20513.                                                                             e
  20514.  
  20515.  
  20516.  
  20517.               Copyright (c) 1991 IEEE.  All rights reserved.
  20518.       This is an unapproved IEEE Standards Draft, subject to change.
  20519.  
  20520.  
  20521.  
  20522.  
  20523.  C.3 Related Organizations                                             291
  20524.  
  20525.  
  20526.  
  20527.  
  20528.  
  20529.  
  20530.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  20531.  
  20532.  For further information, contact UNIX International, Waterview Boulevard,
  20533.  Parsippany, NJ 07054, (201) 263-8400 or (800) 848-6495.  In Europe,
  20534.  contact UNIX International, Avenue de Beautieu 25, 1160 Brussels,
  20535.  Belgium, (32-2-672-3700).  In the Asian Pacific region, contact
  20536.  Karufuru-Kanda Bldg.  8F, 1-2-1 Kanda Suda-cho, Chiyoda-du Tokyo 101,
  20537.  Japan, (81) 3-5256-6959.
  20538.  
  20539.  _U_s_e_r__A_l_l_i_a_n_c_e__f_o_r__O_p_e_n__S_y_s_t_e_m_s
  20540.  
  20541.  The User Alliance for Open Systems was formed from two informal
  20542.  organizations (the Atlanta 17 and the Houston 30).  The Alliance is
  20543.  currently a Requirements Interest Group (RIG) of the Corporation for Open
  20544.  Systems International (COS).
  20545.  
  20546.  The Alliance is dedicated to overcoming barriers to open systems and
  20547.  speeding the development and deployment of open systems products.  It
  20548.  intends to act as a catalyst toward the development and use of open
  20549.  systems.  It will develop no specifications or products.  Rather, the
  20550.  Alliance will create and support processes to influence and accelerate
  20551.  the availability of open systems technology (e.g., a repository of
  20552.  information about the cost benefits of open systems).
  20553.  
  20554.  In 1990 the organization began its work by identifying barriers to open
  20555.  systems and global actions to eliminate those barriers.  In 1991 the
  20556.  organization intends to start bringing resources to bear to achieve its
  20557.  goals.  The Alliance has had one formal meeting (Dallas, March 1991) and
  20558.  will have its second formal meeting in McLean, Virginia in Nov.  1992.
  20559.  Alliance committee work is ongoing throughout this period with three
  20560.  major subgroups in the formative stages.
  20561.  
  20562.  For further information, contact the Corporation for Open Systems, 1750
  20563.  Old Meadow Road, Suite 400, McLean, VA 22102-4306, Telephone:
  20564.  (703) 883-2700.
  20565.  
  20566.  _X_._4_0_0__A_P_I__A_s_s_o_c_i_a_t_i_o_n
  20567.  
  20568.  The X.400 API (Application Programming Interface) Association is an
  20569.  industry association formed initially to bring X.400 messaging into the
  20570.  PC LAN world.  There are more than twenty companies in the association,
  20571.  and they include most of the current X.400 players.
  20572.  
  20573.  Among its activities, the X.400 API Association developed an X.400
  20574.  Application Programming Interface specification in conjunction with
  20575.  X/Open.  These interfaces, completed in September 1990, are jointly owned
  20576.  by the X.400 API Association and X/Open.  The two organizations
  20577.  contributed these interface specifications to the P1224 Group to use as a
  20578.  basis for the P1224 standard.
  20579.  
  20580.  
  20581.  
  20582.  
  20583.               Copyright (c) 1991 IEEE.  All rights reserved.
  20584.       This is an unapproved IEEE Standards Draft, subject to change.
  20585.  
  20586.  
  20587.  
  20588.  
  20589.  292                                C Standards Infrastructure Description
  20590.  
  20591.  
  20592.  
  20593.  
  20594.  
  20595.  
  20596.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  20597.  
  20598.  For further information contact (Address and other contact information:
  20599.  TBD)
  20600.  
  20601.  _X_/_O_p_e_n
  20602.  
  20603.  X/Open is an independent, nonprofit consortium formed in 1984.  Its goals  e
  20604.  are to determine user and market requirements and to specify a complete,   e
  20605.  source-level-portable application environment and test suites.  Although   e
  20606.  its members were initially vendors, X/Open's membership now encompasses
  20607.  users, system integrators, value-added resellers, government agencies
  20608.  worldwide, other industry-standards groups, and academic and research
  20609.  institutions.
  20610.  
  20611.                                                                             e
  20612.  
  20613.  The X/Open environment includes specifications for an operating system
  20614.  interface, networking, data management, programming languages, floppy
  20615.  disk formats, internationalization, and distributed transaction
  20616.  processing.  The X/Open Group does not normally define standards for
  20617.  these areas.  Instead, it chooses from existing and emerging standards.    e
  20618.  An X/Open market research program and open user requirements congress      e
  20619.  identify and prioritize user and market requirements, based on input       e
  20620.  solicited from users.  These prioritized requirements are published in a   e
  20621.  document known as the _O_p_e_n _S_y_s_t_e_m_s _D_i_r_e_c_t_i_v_e.  These prioritized           e
  20622.  requirements also help drive the X/Open specification process.  The        e
  20623.  X/Open specifications are published in a series of books known as the      e
  20624.  X/Open Portability Guide.                                                  e
  20625.  
  20626.  The X/Open environment is based on the ISO/IEC 9945-1 core POSIX           e
  20627.  (POSIX.1 {2}) standard, parts of AT&T's System V Interface Definition      e
  20628.  (SVID), and formal international standards that are already accepted or    e
  20629.  likely to be accepted.  However, to rapidly get standards into the field
  20630.  for practical use, where no formal standards exist, X/Open specifies
  20631.  industry standards and widely-accepted de facto standards (including some
  20632.  based on real-world products that have achieved consensus in the
  20633.  marketplace).  In some instances where neither formal nor de facto
  20634.  specifications exist but there is a strong need for standards (e.g.,
  20635.  internationalization and transaction processing), X/Open has itself
  20636.  defined specifications.
  20637.  
  20638.                                                                             e
  20639.  For further information, contact X/Open Company Ltd.  at Apex Plaza,
  20640.  Forbury Road, Reading, Berkshire, RG1 1AX, UK, Telephone: 44 734 508 311.
  20641.  In the US, contact X/Open at 1010 El Camino Real, Menlo Park, CA 94025,
  20642.  Telephone: (415) 323-7992.
  20643.  
  20644.  
  20645.  
  20646.  
  20647.  
  20648.  
  20649.               Copyright (c) 1991 IEEE.  All rights reserved.
  20650.       This is an unapproved IEEE Standards Draft, subject to change.
  20651.  
  20652.  
  20653.  
  20654.  
  20655.  C.3 Related Organizations                                             293
  20656.  
  20657.  
  20658.  
  20659.  
  20660.  
  20661.  
  20662.  
  20663.  
  20664.  
  20665.  
  20666.  
  20667.  
  20668.  
  20669.  
  20670.  
  20671.  
  20672.  
  20673.  
  20674.  
  20675.  
  20676.  
  20677.  
  20678.  
  20679.  
  20680.  
  20681.  
  20682.  
  20683.  
  20684.  
  20685.  
  20686.  
  20687.  
  20688.  
  20689.  
  20690.  
  20691.  
  20692.  
  20693.  
  20694.  
  20695.  
  20696.  
  20697.  
  20698.  
  20699.  
  20700.  
  20701.  
  20702.  
  20703.  
  20704.  
  20705.  
  20706.  
  20707.  
  20708.  
  20709.  
  20710.  
  20711.  
  20712.  
  20713.  
  20714.  
  20715.  
  20716.  
  20717.  
  20718.  
  20719.  
  20720.  
  20721.  
  20722.  
  20723.  
  20724.  
  20725.  
  20726.  
  20727.  
  20728.                                                                P1003.0/D14
  20729.  
  20730.  
  20731.  
  20732.  
  20733.  
  20734.  
  20735.                                   Annex D
  20736.                                (informative)
  20737.                               Electronic-Mail
  20738.  
  20739.  
  20740.  
  20741.  
  20742.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _K_e_v_i_n _L_e_w_i_s
  20743.  
  20744.  The following table lists currently-known e-mail addresses for active
  20745.  working group members.  To correct your entry, send e-mail directly to
  20746.  Hal Jespersen, listed below.
  20747.  
  20748.  Michelle Aden      Sun Microsystems      aden@ebay.sun.com
  20749.  Carolyn Baker      MITRE                 cgb@d74sun.mitre.org
  20750.  Timothy Baker      Ford Aerospace
  20751.  Ralph Barker       UniForum              ralph@techcomm.uniforum.org       e
  20752.  Rich Bergman       NOSC                  rich@tecr.nosc.mil
  20753.  Andy Bihain        GTE Telops            arb1@bunny.gte.com                e
  20754.  Jacques Cazier     Mitre                 cazier@mitre.org                  e
  20755.  Bud Conrad         Tandem                conrad_bud@tandem.com             e
  20756.  Joseph Cote        Treasury Board        tbsitm@nrcvm01                    e
  20757.                        of Canada
  20758.  Bernard Cox        NASA JSC
  20759.  Francis Deckelman  US Navy               deckelman@a.151.edo               e
  20760.  Matt Einseln       Datafocus                                               e
  20761.  Don Folland        CCTA                  def@cctal.co.uk
  20762.  David Folsom       CDC                   dbf@udlv.cdc.com                  e
  20763.  Thomas Ford        USAF                  tford@xpt.ssc.af.mil
  20764.  Bob Gambrel        Unisys                rjg@rsvl.unisys.com
  20765.  Al Hankinson       NIST/NCSL             alhank@swe.ncsl.nist.gov
  20766.  E. Lee Hutchins    USAF                  thutch@ssmct62.ssc.af.mil         e
  20767.  Jim Isaak          DEC                   isaak@decvax.dec.com
  20768.  Petr Janecek       X/Open                p.janecek@xopen.co.uk
  20769.  Astrid Jeffries    Unisys                astridj@convergent.com            e
  20770.  Hal Jespersen      POSIX Software Group  hlj@posix.com
  20771.  Lorraine Kevra     AT&T                  L.Kevra@att.com
  20772.  Ruth Klein         AT&T                  ruthlk@attunix.att.com
  20773.  Doris Lebovits     AT&T                  lebovits@attunix.att.com
  20774.  Kevin Leininger    Fermilab              kevin@fnalf.fnal.gov              e
  20775.  Kevin Lewis        DEC                   klewis@gucci.dec.com
  20776.  Heinz Lycklama     Interactive Systems   heinz@ism.isc.com
  20777.  
  20778.  
  20779.  
  20780.  
  20781.               Copyright (c) 1991 IEEE.  All rights reserved.
  20782.       This is an unapproved IEEE Standards Draft, subject to change.
  20783.  
  20784.  
  20785.  
  20786.  
  20787.  Annex D Electronic-Mail                                               295
  20788.  
  20789.  
  20790.  
  20791.  
  20792.  
  20793.  
  20794.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  20795.  
  20796.  Randolph Lynwood   NASA
  20797.  Doug MacDonald     General Electric
  20798.  Roger Martin       NIST                  rmartin@swe.ncsl.nist.gov
  20799.  Dick McNaney       SAIC                  saic-02@huachuca-emh2.army.mil
  20800.  Pete Meier         IBM                   ...uunet!aixsm!meier
  20801.  Howard Michel      USAF                  michelhe@hqafsc-vax.af.mil        e
  20802.  Gary Miller        IBM                   ...uunet!aixsm!miller             e
  20803.  Kevin Murphy       BT                    murphy_k_v@bt-web.bt.co.uk        e
  20804.  Mary Lynne Nielsen IEEE                  m.nielsen@ieee.org
  20805.  Patricia Oberndorf NADC                  tricia@nadc.navy.mil
  20806.  Jim Oblinger       NUSC                  oblinger@ada.nusc.navy.mil        e
  20807.  Pat Patterson      NASA                  patterso@gmuvax2.gmu.edu
  20808.  David Pruett       NASA JSC              dpruett@nasamail.nasa.gov
  20809.  Wendy Rauch        Emerging Technologies ...uunet!etg!wrauch
  20810.                        Group
  20811.  Lynwood Randolph   NASA HQ               randolph@nasamail.nasa.gov        e
  20812.  Brad Reed          EDS                   reed@eds.com
  20813.  Gregory Sawyer     Space & Naval Warfare                                   e
  20814.                        Systems Command                                      e
  20815.  Carl Schmiedekamp  NADC                  schmiede@nadc.navy.mil
  20816.  Fritz Schulz       OSF                   fschulz@osf.org
  20817.  Richard Scott      Chemical Abstracts    uunet!osu-cis!chemabs!rls27
  20818.                        Service
  20819.  Glen Seeds         Systemhouse
  20820.  Charles Severance  Mich. State Univ.     crs@convex.cl.msu.edu
  20821.  Lewis Shannon      NCR                   lew.shannon@dayton.ncr.com
  20822.  Peter Smith        DEC                   psmith@decvax.dec.com
  20823.  Keith Stobie       Tandem                stobie_keith@tandem.com           e
  20824.  Sandra Swearingen  USAF                  tic-tisc@afcc-oal.af.mil
  20825.  Jong Sung Sunwoo   NCA                                                     e
  20826.  Marti Szczur       NASA/GSFC             msxcxur@postman.gsfc.nasa.gov
  20827.  Ravi Tavakley      CDC                   ravi@kiran.under.cdc.com          e
  20828.  Martial Van Neste  CGI Group             vanneste@bond.crim.ca
  20829.  Robert Voigt       Space & Naval Warfare voigt@nusc.ada.arpa
  20830.                        Systems Command
  20831.  Gentry Watson      UNIX Int'l            glw@ui.org
  20832.  Alan Weaver        IBM                   ...uunet!aixsm!weaver
  20833.  John Wilbur                                                                e
  20834.  John Williams      GM-CPC Hdqts.         jwill08@c4.eds.com                e
  20835.  Arnold Winkler     Unisys                winkler@pre.unisys.com            e
  20836.  George Zerdian     Hughes                george@eos.wel.scg.hac.com
  20837.  
  20838.  
  20839.  
  20840.  
  20841.  
  20842.  
  20843.  
  20844.  
  20845.  
  20846.  
  20847.               Copyright (c) 1991 IEEE.  All rights reserved.
  20848.       This is an unapproved IEEE Standards Draft, subject to change.
  20849.  
  20850.  
  20851.  
  20852.  
  20853.  296                                                     D Electronic-Mail
  20854.  
  20855.  
  20856.  
  20857.  
  20858.  
  20859.  
  20860.                                                                P1003.0/D14
  20861.  
  20862.  
  20863.  
  20864.  
  20865.  
  20866.  
  20867.                                   Annex E
  20868.                                (informative)
  20869.                             Additional Material
  20870.  
  20871.  
  20872.  
  20873.  
  20874.  E.1  Software Development Environments
  20875.  
  20876.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _D_o_n _F_o_l_l_a_n_d
  20877.  
  20878.  
  20879.  E.1.1  Overview and Rationale
  20880.  
  20881.  Software Development Environments are dealt with as a particular
  20882.  application area needing special attention for the following reasons:
  20883.  
  20884.      - The domain of Software Development Environments is one of prime
  20885.        importance.  Software development is a major area of expenditure
  20886.        for government and large commercial organizations.
  20887.  
  20888.      - The need for standardization is being driven not only by the SDE
  20889.        vendors and users, but also by the Independent tool developers who
  20890.        want to get their tool products on as many vendor platforms as
  20891.        possible.
  20892.  
  20893.      - The SDE domain calls not only for portability, but also for
  20894.        particular integration and interoperability requirements.
  20895.  
  20896.      - The domain is primarily of interest to that user community that has
  20897.        large complex software development requirements, but it is also of
  20898.        interest to all application areas as software development is an
  20899.        enabling technology for all applications.
  20900.  
  20901.  Software engineers seek more powerful assistance to improve productivity
  20902.  and quality in the software development process.  Considered opinion
  20903.  currently favors Project Support Environments (PSE) underpinned in such a
  20904.  way that the facilities are capable of being implemented on different
  20905.  machines.  A PSE needs a base holding information such as specifications,
  20906.  designs, code, schedules, configuration plans, tests, etc., to support
  20907.  the developers.  The interface between the base and the tools must ensure
  20908.  portability of the tools.  Again, these tools will be supported by
  20909.  relevant language standards.
  20910.  
  20911.  
  20912.  
  20913.               Copyright (c) 1991 IEEE.  All rights reserved.
  20914.       This is an unapproved IEEE Standards Draft, subject to change.
  20915.  
  20916.  
  20917.  
  20918.  
  20919.  E.1 Software Development Environments                                 297
  20920.  
  20921.  
  20922.  
  20923.  
  20924.  
  20925.  
  20926.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  20927.  
  20928.  Certain design methodologies themselves have been modeled formally to
  20929.  establish their degree of rigor and self-consistency.  Function Point
  20930.  Analysis is one method of measuring software systems and computing
  20931.  productivity that is increasing in use.  It measures inputs, outputs, and
  20932.  entities accessed to determine transaction size; it gauges technical
  20933.  complexity by reference to 19 characteristics.  These are combined to
  20934.  give a measure of systems size.  Productivity is the ratio of system size
  20935.  in function points to the effort required to produce or maintain the
  20936.  system.
  20937.  
  20938.  Generally, software support for the development process is in its infancy
  20939.  and effective metrics have not yet been developed.
  20940.  
  20941.  
  20942.  E.1.2  Scope
  20943.  
  20944.  The problem domain is complex software development, from the generation
  20945.  of an idea to the delivery and ongoing support of a solution product set.
  20946.  
  20947.  Thus, an SDE may include some or all of the following:
  20948.  
  20949.      (1)  Software Development Life Cycle
  20950.  
  20951.            (a)  Requirements analysis
  20952.  
  20953.            (b)  Logical design
  20954.  
  20955.            (c)  Physical design
  20956.  
  20957.            (d)  Functional and interface specification
  20958.  
  20959.      (2)  Activity support
  20960.  
  20961.            (a)  Prototyping
  20962.  
  20963.            (b)  Program development and testing
  20964.  
  20965.            (c)  Quality assurance and regression testing
  20966.  
  20967.            (d)  Generation of user documentation
  20968.  
  20969.            (e)  User training
  20970.  
  20971.            (f)  Problem report tracking and maintenance
  20972.  
  20973.            (g)  Maintenance and tracking of schedules
  20974.  
  20975.      (3)  Configuration Management
  20976.  
  20977.  
  20978.  
  20979.               Copyright (c) 1991 IEEE.  All rights reserved.
  20980.       This is an unapproved IEEE Standards Draft, subject to change.
  20981.  
  20982.  
  20983.  
  20984.  
  20985.  298                                                 E Additional Material
  20986.  
  20987.  
  20988.  
  20989.  
  20990.  
  20991.  
  20992.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  20993.  
  20994.            (a)  Automatic version management
  20995.  
  20996.            (b)  Integrity management
  20997.  
  20998.            (c)  Traceability
  20999.  
  21000.      (4)  Project Management
  21001.  
  21002.      (5)  Data Administration
  21003.  
  21004.            (a)  Access control
  21005.  
  21006.  In the context of developing software for a POSIX Open System
  21007.  Environment, design will take account of portability and interoperability
  21008.  requirements.  The SDE tools themselves should be portable.  The software
  21009.  development activities may be provided with a large set of tools and
  21010.  applications.  The SDE must provide the necessary support for the
  21011.  integration of all of these tools.
  21012.  
  21013.  
  21014.  E.1.3  Reference Model
  21015.  
  21016.  _________________________________________________________________________
  21017.  
  21018.  
  21019.  
  21020.  
  21021.  
  21022.  
  21023.  
  21024.  
  21025.  
  21026.  
  21027.  
  21028.  
  21029.  
  21030.  
  21031.  
  21032.  
  21033.  
  21034.  
  21035.  
  21036.  _________________________________________________________________________
  21037.                  Figure E-1  -  Software Development Model
  21038.  
  21039.  
  21040.  In this clause the conceptual view of software development is related to
  21041.  the POSIX Reference Model (Figure 3-1).  The software developer's view is
  21042.  shown in Figure E-1.  The tools used to develop software can be viewed as
  21043.  
  21044.  
  21045.               Copyright (c) 1991 IEEE.  All rights reserved.
  21046.       This is an unapproved IEEE Standards Draft, subject to change.
  21047.  
  21048.  
  21049.  
  21050.  
  21051.  E.1 Software Development Environments                                 299
  21052.  
  21053.  
  21054.  
  21055.  
  21056.  
  21057.  
  21058.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  21059.  
  21060.  _________________________________________________________________________
  21061.  
  21062.  
  21063.  
  21064.  
  21065.  
  21066.  
  21067.  
  21068.  
  21069.  
  21070.  
  21071.  
  21072.  
  21073.  
  21074.  
  21075.  
  21076.  
  21077.  _________________________________________________________________________
  21078.             Figure E-2  -  Software Development Reference Model
  21079.  
  21080.  
  21081.  applications in their own right in the context of the POSIX Reference
  21082.  Model, requiring the same services from the platform as for Database
  21083.  Management.
  21084.  
  21085.  In the Software Development Model, the Environment Adaptation and Project
  21086.  Support Tools ``layer'' provides the essential link between the
  21087.  programmer, designer or analyst, the design method, and the development
  21088.  infrastructure.  At this level are provided the tools and applications
  21089.  that are unique to the project or methodology; e.g., project management
  21090.  workbench.  It requires support from a consistent human-computer
  21091.  interface to the Functional Tools.
  21092.  
  21093.  The Functional Tools and Integration Mechanisms embrace the essential
  21094.  tool set to enable software developers to build software.  It includes
  21095.  simple tools such as editors, tools for tool-building, and integration
  21096.  mechanisms.  There will be tools for Configuration Management, Version
  21097.  Management, and System Administration.  It is not within the scope of
  21098.  this guide to discuss these in detail.
  21099.  
  21100.  The whole software development environment is underpinned by essential
  21101.  management systems, such as object management system, a data dictionary,
  21102.  a user interface management system, and environment management.  A
  21103.  database will frequently be established to hold specifications, designs,
  21104.  configuration plans, etc.
  21105.  
  21106.  In the POSIX Open System Environment, the software development model can
  21107.  be incorporated into the POSIX Reference Model as in Figure E-2.  The
  21108.  model shows that the tools and services required by the software
  21109.  
  21110.  
  21111.               Copyright (c) 1991 IEEE.  All rights reserved.
  21112.       This is an unapproved IEEE Standards Draft, subject to change.
  21113.  
  21114.  
  21115.  
  21116.  
  21117.  300                                                 E Additional Material
  21118.  
  21119.  
  21120.  
  21121.  
  21122.  
  21123.  
  21124.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  21125.  
  21126.  developer are part of the POSIX Open System Environment and are available
  21127.  through the POSIX OSE API.
  21128.  
  21129.  
  21130.  E.1.4  Services Requirements
  21131.  
  21132.  Software developers, i.e., designers, analysts, and programmers, use
  21133.  software applications to facilitate the complex task of software
  21134.  development.  A tool will require services from the application platform
  21135.  and will frequently require support from another application in the
  21136.  application set.  There are many possible implementations of tool sets.
  21137.  Descriptions of these are beyond the scope of this guide.
  21138.  
  21139.  E.1.4.1  Application Program Interface Services
  21140.  
  21141.  The services required at the API are essentially similar to those
  21142.  described for Database Management in 4.4.4.1; i.e., Data Definition and
  21143.  Manipulation, Data Access, Data Integrity, and such Miscellaneous
  21144.  Services as Data Dictionary.
  21145.  
  21146.  E.1.4.2  External Environment Interface Services
  21147.  
  21148.  A consistent human-computer interface to the tool set is required.  Some
  21149.  of the programmer's tool set will be explicitly focused on windowing
  21150.  services (such as 4.7 and 4.8) and provide assistance to develop software
  21151.  with improved usability.
  21152.  
  21153.  Resource data formats must be specified in order to ensure effective
  21154.  information interchange [for example, CASE Data Interchange Format
  21155.  (CDIF)], for which standards are currently under development under the
  21156.  aegis of the CDIF Technical Committee (see also E.1.5.2 and 4.5).
  21157.  
  21158.  Protocol services are required for the transport of data (see 4.3).
  21159.  
  21160.  E.1.4.3  Interapplication Software Entity Services
  21161.  
  21162.  Many of the tools depend for interface between one another upon the data
  21163.  dictionary/repository, which is a key software component and which may
  21164.  conceptually be regarded as part of the Applications Platform.  Included
  21165.  in this category will be utilities for servicing the DBMS, such as
  21166.  recovery, reorganization, and restructure:
  21167.  
  21168.      - Object management system
  21169.  
  21170.      - User interface management system
  21171.  
  21172.      - Database management system
  21173.  
  21174.  
  21175.  
  21176.  
  21177.               Copyright (c) 1991 IEEE.  All rights reserved.
  21178.       This is an unapproved IEEE Standards Draft, subject to change.
  21179.  
  21180.  
  21181.  
  21182.  
  21183.  E.1 Software Development Environments                                 301
  21184.  
  21185.  
  21186.  
  21187.  
  21188.  
  21189.  
  21190.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  21191.  
  21192.      - Transaction processing management system
  21193.  
  21194.  Details of these management systems may be recorded in the data
  21195.  dictionary/repository.
  21196.  
  21197.  E.1.4.4  Software Development Resource Management Services
  21198.  
  21199.  These services are generally not visible to the programmer or software
  21200.  developer at the Tools API, usually being provided by the tool building
  21201.  and other software development utilities.
  21202.  
  21203.  
  21204.  E.1.5  Standards, Specifications, and Gaps
  21205.  
  21206.  This subclause describes current accepted standards that are relevant to
  21207.  this area in addition to the language standards in 4.1.5 and the database
  21208.  standards in 4.4.5.
  21209.  
  21210.  
  21211.                Table E-1  -  Software Development Standards
  21212.  __________________________________________________________________________________________________________________________________________________
  21213.                         Service                       SpecificationSubclause
  21214.  ___________________________________________________________________________
  21215.  
  21216.  Miscellaneous Services:
  21217.  
  21218.      Labeling of magnetic tape                        ISO 1001     4.11.5.?
  21219.      Labeling of cassette and cartridge               ISO 4341     4.11.5.?
  21220.      Labeling of flexible disks                       ISO 7665     4.11.5.?
  21221.      Volume and file structure for flexible disks     ISO 9293     4.11.5.?
  21222.      Volume and file structure for CD-ROM             ISO 9660     4.11.5.?
  21223.      Documentation symbols and flowchart conventions  ISO 5807     4.11.5.?
  21224.      Documentation of applications                    ISO 6592     4.11.5.?
  21225.      Program flow for sequential files                ISO 6593     4.11.5.?
  21226.      Data descriptive file for information interchangeISO 8211     4.11.5.?
  21227.      Program constructs and conventions               ISO 8631     4.11.5.?
  21228.      User documentation                               ISO 9127     4.11.5.?
  21229.  __________________________________________________________________________________________________________________________________________________
  21230.  
  21231.  
  21232.  E.1.5.1  Current Standards
  21233.  
  21234.  This subclause briefly identifies the current standards in this area.
  21235.  
  21236.  _T_h_e _f_o_l_l_o_w_i_n_g _p_r_o_v_i_d_e_s _p_l_a_c_e _h_o_l_d_e_r_s _f_o_r _f_u_r_t_h_e_r _t_e_x_t _t_o _b_e _i_n_s_e_r_t_e_d -
  21237.  _a_s_s_i_s_t_a_n_c_e _r_e_q_u_i_r_e_d _p_l_e_a_s_e.
  21238.  
  21239.  
  21240.  
  21241.  
  21242.  
  21243.               Copyright (c) 1991 IEEE.  All rights reserved.
  21244.       This is an unapproved IEEE Standards Draft, subject to change.
  21245.  
  21246.  
  21247.  
  21248.  
  21249.  302                                                 E Additional Material
  21250.  
  21251.  
  21252.  
  21253.  
  21254.  
  21255.  
  21256.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  21257.  
  21258.  E.1.5.1.1  International Standards
  21259.  
  21260.  _L_a_b_e_l_i_n_g__a_n_d__F_i_l_e__S_t_r_u_c_t_u_r_e__o_f__M_a_g_n_e_t_i_c__M_e_d_i_a
  21261.  
  21262.  The following standards refer to the labeling of magnetic media and for
  21263.  the file structure on such media to facilitate information interchange:
  21264.  
  21265.        Labeling of magnetic tape                           ISO 1001
  21266.        Labeling of cassette and cartridge                  ISO 4341
  21267.        Labeling of flexible disks                          ISO 7665
  21268.        Volume and file structure for flexible disks        ISO 9293
  21269.        Volume and file structure for CD-ROM                ISO 9660
  21270.        Data descriptive file for information interchange   ISO 8211
  21271.  
  21272.  _T_h_e _a_b_o_v_e-_m_e_n_t_i_o_n_e_d _s_t_a_n_d_a_r_d_s _m_i_g_h_t _b_e _m_o_r_e _s_u_i_t_a_b_l_y _c_a_l_l_e_d _o_u_t _i_n
  21273.  _R_i_c_h_a_r_d _S_c_o_t_t'_s _s_e_c_t_i_o_n _4._5.
  21274.  
  21275.  _S_o_f_t_w_a_r_e__D_o_c_u_m_e_n_t_a_t_i_o_n
  21276.  
  21277.  There are several standards dealing with documentation to assist with the
  21278.  task of software development, and therefore potentially facilitating
  21279.  programmer and designer portability, as well as user documentation.
  21280.  
  21281.             Documentation symbols and conventions      ISO 5807
  21282.             for data, program and system flowcharts,
  21283.             program network charts, and system
  21284.             resources charts
  21285.             Guidelines for the documentation of        ISO 6592
  21286.             computer-based application systems
  21287.             Program flow for processing sequential     ISO 6593
  21288.             files in terms of record groups
  21289.             Program constructs and conventions for     ISO 8631
  21290.             their representation
  21291.             User documentation and cover information   ISO 9127
  21292.             for consumer software packages
  21293.  
  21294.  E.1.5.1.2  Regional Standards
  21295.  
  21296.  ECMA has approved ECMA-149 as the standard for the Portable Common Tool
  21297.  Environment (PCTE).
  21298.  
  21299.  E.1.5.1.3  National Standards
  21300.  
  21301.  _T_o _B_e _P_r_o_v_i_d_e_d
  21302.  
  21303.  
  21304.  
  21305.  
  21306.  
  21307.  
  21308.  
  21309.               Copyright (c) 1991 IEEE.  All rights reserved.
  21310.       This is an unapproved IEEE Standards Draft, subject to change.
  21311.  
  21312.  
  21313.  
  21314.  
  21315.  E.1 Software Development Environments                                 303
  21316.  
  21317.  
  21318.  
  21319.  
  21320.  
  21321.  
  21322.  P1003.0/D14                               GUIDE TO THE POSIX OPEN SYSTEMS
  21323.  
  21324.  E.1.5.2  Emerging Standards
  21325.  
  21326.  This subclause describes the activities currently in progress to further
  21327.  standardize this area.
  21328.  
  21329.  E.1.5.2.1  International Standards
  21330.  
  21331.  _T_o _B_e _P_r_o_v_i_d_e_d
  21332.  
  21333.  E.1.5.2.2  Regional Standards
  21334.  
  21335.  _T_o _B_e _P_r_o_v_i_d_e_d
  21336.  
  21337.  _C_A_S_E__D_a_t_a__I_n_t_e_r_c_h_a_n_g_e__F_o_r_m_a_t__(_C_D_I_F_)
  21338.  
  21339.  The CDIF Technical Committee is developing a data interchange format to
  21340.  serve as an industry standard for exchanging information between
  21341.  Computer-Aided Software Engineering (CASE) tools.  CDIF is an EIA-
  21342.  endorsed initiative.  It assumes that two or more tools may interface
  21343.  asynchronously with each other and will transfer information from one to
  21344.  another via ``CDIF files.''  The types of information that may be
  21345.  contained in these files is defined by the CDIF Conceptual Models.
  21346.  
  21347.  _P_o_r_t_a_b_l_e__C_o_m_m_o_n__T_o_o_l__E_n_v_i_r_o_n_m_e_n_t__(_P_C_T_E_)
  21348.  
  21349.  ECMA TC33 has responsibility for the development and maintenance of PCTE.
  21350.  The committee formed a Task Group in 1988 to develop a Reference Model
  21351.  which would assist the standardization process.  Such a model has been
  21352.  developed totally independent of PCTE, and is described in ECMA Technical
  21353.  Report 55.  The model provides a way to describe, compare, and contrast
  21354.  CASE environment frameworks.
  21355.  
  21356.  E.1.5.2.3  National Standards
  21357.  
  21358.  _T_o _B_e _P_r_o_v_i_d_e_d
  21359.  
  21360.  E.1.5.2.4  National Standards
  21361.  
  21362.  _T_o _B_e _P_r_o_v_i_d_e_d
  21363.  
  21364.  E.1.5.3  Gaps in Available Standards
  21365.  
  21366.  E.1.5.3.1  Public Specifications
  21367.  
  21368.  _T_o _B_e _P_r_o_v_i_d_e_d
  21369.  
  21370.  
  21371.  
  21372.  
  21373.  
  21374.  
  21375.               Copyright (c) 1991 IEEE.  All rights reserved.
  21376.       This is an unapproved IEEE Standards Draft, subject to change.
  21377.  
  21378.  
  21379.  
  21380.  
  21381.  304                                                 E Additional Material
  21382.  
  21383.  
  21384.  
  21385.  
  21386.  
  21387.  
  21388.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D14
  21389.  
  21390.  E.1.5.3.2  Unsatisfied Service Requirements
  21391.  
  21392.  _T_o _B_e _P_r_o_v_i_d_e_d
  21393.  
  21394.  
  21395.  E.1.6  OSE Cross-Category Services
  21396.  
  21397.  Not applicable.
  21398.  
  21399.  
  21400.  E.1.7  Related Standards
  21401.  
  21402.  _T_o _B_e _P_r_o_v_i_d_e_d
  21403.  
  21404.  
  21405.  E.1.8  Open Issues
  21406.  
  21407.      - Relationship between methodology and formats
  21408.  
  21409.  [_P_C_T_E _a_n_d _C_A_I_S-_A _h_a_v_e _b_e_e_n _m_o_v_e_d _h_e_r_e _l_a_r_g_e_l_y _b_e_c_a_u_s_e _i_t _i_s _n_o_t _c_l_e_a_r
  21410.  _w_h_a_t _t_o _d_o _w_i_t_h _t_h_e_m.  _T_h_e_y _a_r_e _n_o_t _a_d_e_q_u_a_t_e_l_y _a_c_c_o_m_m_o_d_a_t_e_d _b_y _t_h_i_s
  21411.  _m_o_d_e_l.  _T_h_e_y _a_r_e _b_o_t_h _h_y_b_r_i_d_s _o_f _o_p_e_r_a_t_i_n_g _s_y_s_t_e_m _a_n_d _d_a_t_a_b_a_s_e _m_a_n_a_g_e_m_e_n_t
  21412.  _s_y_s_t_e_m _c_a_p_a_b_i_l_i_t_i_e_s _t_h_a_t _s_e_e_m _t_o _b_e_l_o_n_g _e_i_t_h_e_r _e_v_e_r_y_w_h_e_r_e _o_r _n_o_w_h_e_r_e.
  21413.  _T_h_e_y _c_o_u_l_d _b_o_t_h _w_e_l_l _b_e _u_s_e_d _i_n _c_o_n_j_u_n_c_t_i_o_n _w_i_t_h _a _P_1_0_0_3._1
  21414.  _i_m_p_l_e_m_e_n_t_a_t_i_o_n, _b_u_t _t_h_e_y _c_o_u_l_d _a_l_s_o _b_e _i_m_p_l_e_m_e_n_t_e_d _o_n _o_t_h_e_r _b_a_s_e
  21415.  _o_p_e_r_a_t_i_n_g _s_y_s_t_e_m_s, _o_r _i_m_p_l_e_m_e_n_t_a_t_i_o_n_s _c_o_u_l_d _e_v_e_n _e_x_p_a_n_d _t_h_e_i_r
  21416.  _c_a_p_a_b_i_l_i_t_i_e_s _t_o _p_r_o_v_i_d_e _f_u_l_l _o_p_e_r_a_t_i_n_g _s_y_s_t_e_m_s.  _P_1_0_0_3._0 _m_u_s_t _d_e_c_i_d_e _w_h_a_t
  21417.  _t_o _d_o _w_i_t_h _t_h_e_m.]
  21418.  
  21419.  _P_C_T_E
  21420.  
  21421.  An effort by the European Computer Manufacturers Association (ECMA) has
  21422.  resulted in the definition by Technical Committee 33 of the Basis for the
  21423.  Portable Common Tools Environment (PCTE).  This is now an ECMA standard
  21424.  and is referred to as Standard ECMA-149.
  21425.  
  21426.  _C_A_I_S_-_A
  21427.  
  21428.  MIL-STD-1838A (CAIS-A) was developed by the US Department of Defense to
  21429.  provide a common foundation for Ada Programming Support Environments.
  21430.  Similar in nature to PCTE (see above), it too covers many of the system
  21431.  services covered by 4.2.4.  In addition, it provides data management
  21432.  services such as those discussed in 4.4 and data interchange services
  21433.  (specifically, a Common External Form) similar to those discussed in 4.5.
  21434.  
  21435.  
  21436.  
  21437.  
  21438.  
  21439.  
  21440.  
  21441.               Copyright (c) 1991 IEEE.  All rights reserved.
  21442.       This is an unapproved IEEE Standards Draft, subject to change.
  21443.  
  21444.  
  21445.  
  21446.  
  21447.  E.1 Software Development Environments                                 305
  21448.  
  21449.  
  21450.  
  21451.  
  21452.  
  21453.  
  21454.  
  21455.  
  21456.  
  21457.  
  21458.  
  21459.  
  21460.  
  21461.  
  21462.  
  21463.  
  21464.  
  21465.  
  21466.  
  21467.  
  21468.  
  21469.  
  21470.  
  21471.  
  21472.  
  21473.  
  21474.  
  21475.  
  21476.  
  21477.  
  21478.  
  21479.  
  21480.  
  21481.  
  21482.  
  21483.  
  21484.  
  21485.  
  21486.  
  21487.  
  21488.  
  21489.  
  21490.  
  21491.  
  21492.  
  21493.  
  21494.  
  21495.  
  21496.  
  21497.  
  21498.  
  21499.  
  21500.  
  21501.  
  21502.  
  21503.  
  21504.  
  21505.  
  21506.  
  21507.  
  21508.  
  21509.  
  21510.  
  21511.  
  21512.  
  21513.  
  21514.  
  21515.  
  21516.  
  21517.  
  21518.  
  21519.  
  21520.                                                                P1003.0/D14
  21521.  
  21522.                          Alphabetic Topical Index
  21523.  
  21524.  
  21525.  
  21526.  A                                      Application Platform
  21527.                                            Implementation Considerations
  21528.  Abbreviations  ... 13                      ... 33
  21529.  ABS  ... 288                           application platform
  21530.  Accounting  ... 221                       definition of  ... 7
  21531.  ACID  ... 119, 122, 126                Application Program Interface
  21532.  ACL  ... 141, 212                         (API) Elements  ... 135
  21533.  ACSE  ... 95                           Application Program Interface
  21534.  AD1  ... 91                               (API)  ... 20, 25
  21535.  Ada  ... 46, 48                        application program interface
  21536.  Administration  ... 175                   (API)
  21537.  AEP  ... 7, 228                           definition of  ... 7
  21538.  AES  ... 64, 69, 185, 288              Application Program Interface
  21539.  AFNOR: Association Francaise de           Services  ... 55, 83, 103, 113,
  21540.     Normalization  ... 268                 124, 136, 158, 172, 179
  21541.  AFNOR  ... 268                         Application Program Interface
  21542.  Alphabetic Topical Index  ... 307          ... 24
  21543.  ANSI: American National Standards      Application Program Services
  21544.     Institute  ... 268                      ... 45
  21545.  ANSI X3.122  ... 115-116               Application Programming Interface
  21546.  ANSI X3.133  ... 107                      Services  ... 212
  21547.  ANSI X3.135  ... 130                   Application Software Elements
  21548.  ANSI X3.138  ... 106, 108                  ... 135
  21549.  ANSI X3.168  ... 106, 130              application software entities
  21550.  ANSI/ISO  ... 159                          ... 25
  21551.  ANSI  ... 48-50, 107-109, 115-116,     application software
  21552.     129, 145-146, 151, 159, 163-           definition of  ... 7
  21553.     168, 234, 243, 245, 263, 268-       Application to Application Service
  21554.     269, 271-272, 275-276, 278-279,         ... 84
  21555.     282, 286, 291                       Application to System Services
  21556.  API Service Requirements  ... 198          ... 84
  21557.  API                                    application
  21558.     definition of  ... 13                  definition of  ... 7
  21559.  APL  ... 46, 48                        APP  ... 278
  21560.  APL  ... 45-46, 48, 128, 162, 280      Approved POSIX Standardized
  21561.  Application Environment Profile           Profiles  ... 237
  21562.     (AEP)                               APT  ... 280
  21563.     definition of  ... 7                ASCE  ... 80, 91
  21564.  Application Platform Decomposition     ASCII  ... 192
  21565.     III - Redirection  ... 36           ASE  ... 95
  21566.  Application Platform Decomposition     ASN.1  ... 91, 96, 110, 115, 117,
  21567.     II - Layering  ... 36                  207
  21568.  Application Platform                   AT&T  ... 69, 185, 291, 293
  21569.     Implementation - Subdivision
  21570.      ... 35
  21571.  
  21572.  
  21573.               Copyright (c) 1991 IEEE.  All rights reserved.
  21574.       This is an unapproved IEEE Standards Draft, subject to change.
  21575.  
  21576.  
  21577.  
  21578.  
  21579.  Alphabetic Topical Index                                              307
  21580.  
  21581.  
  21582.  
  21583.  
  21584.  
  21585.  
  21586.  P1003.0/D14
  21587.  
  21588.  B                                      CCR  ... 130
  21589.                                         CCR  ... 110, 130
  21590.  background  ... 2, 6, 120, 182,        CDIF  ... 115, 117
  21591.     195, 257                            CEC  ... 284, 290
  21592.  base standard                          CEDEX  ... 285
  21593.     definition of  ... 7                CEN/CENELEC/CEPT  ... 270
  21594.  Base Standards Working Groups          CEN/CENELEC/CEPT  ... 270
  21595.      ... 254                            CEN/CENELEC  ... 284-285
  21596.  Basic Terminology  ... 228             CENELEC  ... 270-271, 284-285
  21597.  Basic Window Services  ... 137         CENLEC  ... 271
  21598.  BASIC  ... 46, 49-50                   CEN  ... 266, 270-271, 284-285
  21599.  BASIC  ... 45-46, 48-50, 128, 162,     CEPT  ... 270-271, 284
  21600.     263                                 CGI  ... 151, 159, 162, 164-165
  21601.  Basis for This Guidance  ... 231       CGM  ... 115-116, 151, 159, 165,
  21602.  Bibliography  ... 262                     243
  21603.  B.P  ... 285                           CGRM  ... 151-152, 159, 167
  21604.  BSD  ... 66, 183, 185                  CH-1211  ... 2, 262
  21605.  BSI: British Standards Institute       Character Sets and Data
  21606.      ... 269                               Representation  ... 114, 192
  21607.  BSI  ... 269                           Character-based Terminal Reference
  21608.  built-in  ... 178                         Model  ... 172
  21609.                                         Character-Based User Interface
  21610.                                            Services  ... 171
  21611.  C                                      Clear Communications  ... 234
  21612.                                         C-LISP  ... 128, 162
  21613.  C Standard  ... 146, 174, 276          CMA  ... 213
  21614.  C  ... 47, 49                          CMDB  ... 216
  21615.  C++  ... 50                            CNMA  ... 284
  21616.  CAD/CAM/CAE  ... 152                   COBOL  ... 47, 49
  21617.  CAD/CAM  ... 131                       COBOL  ... 22, 27, 44-45, 47-49,
  21618.  CAD  ... 47, 117                          106, 128, 162, 243, 245, 254,
  21619.  Canadian Standards Association            280, 282-283
  21620.     (CSA)  ... 269                      CODASYL: The Conference on Data
  21621.  Capability and Security Services          Systems Languages  ... 282
  21622.      ... 70                             CODASYL-ANSI  ... 282
  21623.  Capacity Management  ... 222           CODASYL  ... 107, 282-283
  21624.  CASE Data Interchange Format           Coherence  ... 235, 254
  21625.     (CDIF)  ... 117                     Common LISP  ... 47
  21626.  CASE  ... 117, 135                     Communication EEI Elements  ... 76
  21627.  CBEMA: Computer and Business           Communications Interface
  21628.     Equipment Manufacturers                definition of  ... 7
  21629.     Association  ... 282                Communications Services API
  21630.  CBEMA  ... 279, 281-282                    ... 26
  21631.  CCITT: Comite Consultatif              Communications Services  ... 25
  21632.     International de Telegraphie et     Completeness  ... 233
  21633.     Telephonie  ... 270                 Computer Graphics Metafile (CGM)
  21634.  CCITT  ... 91, 95, 200, 202-203,           ... 116
  21635.     213, 262, 266, 270, 272, 275,
  21636.     278, 286
  21637.  
  21638.  
  21639.               Copyright (c) 1991 IEEE.  All rights reserved.
  21640.       This is an unapproved IEEE Standards Draft, subject to change.
  21641.  
  21642.  
  21643.  
  21644.  
  21645.  308                                              Alphabetic Topical Index
  21646.  
  21647.  
  21648.  
  21649.  
  21650.  
  21651.  
  21652.                                                                P1003.0/D14
  21653.  
  21654.  Computer Graphics Reference Model      D
  21655.     Level Structure  ... 153
  21656.  Configuration Management  ... 175      DAC  ... 212
  21657.  Conformance to a POSIX SP  ... 255     Data Access Services  ... 104
  21658.  Conformance  ... 3, 254                Data Definition and Manipulation
  21659.  conformance  ... 3, 43, 150, 152,         Services  ... 103
  21660.     159, 166, 210, 230-233, 246,        Data Description Protocols
  21661.     249, 252, 254-255, 260, 269,            ... 114
  21662.     278, 283, 285, 287, 289, 291        Data Format Protocols  ... 114
  21663.  Considerations for Developers of       Data Integrity Services  ... 104
  21664.     POSIX SPs  ... 249                  Data Interchange Reference Model
  21665.  Content of the Multiprocessing             ... 112
  21666.     Systems Profile  ... 240            Data Interchange Services  ... 111
  21667.  Content of the Platform                Data Interchange Standards
  21668.     Environment Profile  ... 239            ... 115
  21669.  Content of the Supercomputing          Data Representation Services
  21670.     Profile  ... 242                        ... 88
  21671.  Content of the Transaction             Data Transfer and Connectivity
  21672.     Processing Profile  ... 244             ... 89
  21673.  Conventional Transaction               Database Administration Services
  21674.     Processing Model  ... 121               ... 105
  21675.  Conventional Transaction               Database API  ... 100
  21676.     Processing Reference Model          Database Manager  ... 100
  21677.      ... 121                            Database Recovery Services
  21678.  Conventions  ... 5                         ... 105
  21679.  Coordinate Systems and Clipping        Database Resource Management
  21680.      ... 156                               Services  ... 105
  21681.  COS: Corporation for Open Systems      Database Services  ... 99
  21682.      ... 283                            Database Standards  ... 107
  21683.  COS  ... 283, 286-287, 289-290,        Database Utility Program  ... 100
  21684.     292                                 DBSSG  ... 109
  21685.  CPIC  ... 91                           DBTG  ... 282-283
  21686.  CPIO  ... 67                           DCT  ... 262
  21687.  CPU  ... 56-57, 242                    DDLC  ... 282
  21688.  C++  ... 45, 47-48, 50                 DDL  ... 107, 282-283
  21689.  CRT  ... 25                            Definitions  ... 5
  21690.  CSA  ... 269                           definitions  ... 7
  21691.  CSA-Z243  ... 200, 205                 Detailed Guidance to Profile
  21692.  CSMA/CD  ... 91, 277                      Writers  ... 232
  21693.  CSS  ... 165                           Detailed Network Service
  21694.  CTS  ... 289                              Requirements  ... 87
  21695.  Cultural Conventions  ... 195, 198     Dialog Services  ... 143
  21696.  Current Standards  ... 48, 65, 91,     DIN: Deutsches Institut fur
  21697.     106, 115, 128, 145, 159, 174,          Normung  ... 271
  21698.     183, 200, 213                       DIN  ... 196, 271-272
  21699.  Curses  ... 175                        Directory Services Architecture
  21700.                                             ... 83
  21701.  
  21702.  
  21703.  
  21704.  
  21705.               Copyright (c) 1991 IEEE.  All rights reserved.
  21706.       This is an unapproved IEEE Standards Draft, subject to change.
  21707.  
  21708.  
  21709.  
  21710.  
  21711.  Alphabetic Topical Index                                              309
  21712.  
  21713.  
  21714.  
  21715.  
  21716.  
  21717.  
  21718.  P1003.0/D14
  21719.  
  21720.  Directory Services  ... 83                178-180, 213
  21721.  directory  ... 60-61, 67, 70, 73-      EFTA  ... 270
  21722.     75, 80, 82-83, 91, 95-96, 127,      EIA: Electronic Industries
  21723.     130, 181-182, 184, 213, 284,           Association  ... 276
  21724.     290                                 EIA  ... 91, 117, 276, 286
  21725.  DIS  ... 50, 130, 159, 163-164,        Electronic Data Interchange (EDI)
  21726.     166, 200, 234, 266                      ... 116
  21727.  Distributed Database Management        Electronic-Mail  ... 295
  21728.     Services  ... 106                   Embedded Realtime Systems  ... 246
  21729.  Distributed System Configuration       Emerging Standards  ... 50, 68,
  21730.     Management  ... 217                    91, 108, 116, 128, 145, 165,
  21731.  Distributed System Environment            174, 184, 204, 214
  21732.     Model  ... 29                       _e_n_v_i_r_o_n  ... 67
  21733.  Distributed System Services            Environment Services  ... 58
  21734.      ... 88                             ENV  ... 266, 271
  21735.  DML  ... 107, 283                      EPRI: Electric Power Research
  21736.  DNI  ... 81-82, 91, 95                    Institute  ... 283
  21737.  document  ... 2, 5-8, 11-12, 21,       EPRI  ... 283-284
  21738.     29, 31, 41, 43, 66, 96, 102-        _e_r_r_n_o  ... 67
  21739.     103, 115-116, 126, 131, 146,        Error Handling  ... 139
  21740.     159, 197, 199, 206-207, 210,        ESPRIT (European Strategic
  21741.     213, 220, 227-228, 231-235,            Programme for Research and
  21742.     238-239, 241, 249, 251, 253,           Development in Information
  21743.     255-260, 262-263, 268, 271,            Technology)  ... 284
  21744.     277, 281-282, 284-285, 291, 293     ESPRIT  ... 284, 289
  21745.  DOD  ... 213-214                       ETSI: European Telecommunications
  21746.  DTE  ... 262                              Standards Institute  ... 284
  21747.  DTP  ... 120, 128-129                  ETSI  ... 284-285
  21748.                                         ETS  ... 285
  21749.                                         Event Handling  ... 138
  21750.  E                                      EWOS: European Workshop for Open
  21751.                                            Systems  ... 285
  21752.  EBU  ... 284                           EWOS  ... 285, 289
  21753.  ECMA: European Computer                _e_x_e_c()  ... 67
  21754.     Manufacturers Association           External Environment Interface
  21755.      ... 275                               (EEI) Elements  ... 136
  21756.  ECMA  ... 91, 108, 213, 272, 275,      External Environment Interface
  21757.     278                                    (EEI)  ... 24
  21758.  EDIFACT  ... 115-116                      definition of  ... 7
  21759.  EDI  ... 116                           External Environment Interface
  21760.  EEI                                       Elements  ... 75
  21761.     definition of  ... 13               External Environment Interface
  21762.  EEI-API Service Relationships             Services  ... 48, 63, 89, 105,
  21763.      ... 27                                113, 126, 144, 159, 174, 180,
  21764.  EEI-API  ... 27                           213
  21765.  EEI  ... 7, 13, 20, 24-25, 27-28,      External Environment Interface
  21766.     32, 34, 43, 54, 74-76, 78, 82,          ... 20
  21767.     89-90, 97, 112-114, 127, 133-
  21768.     134, 136, 145, 154, 159, 171,
  21769.  
  21770.  
  21771.               Copyright (c) 1991 IEEE.  All rights reserved.
  21772.       This is an unapproved IEEE Standards Draft, subject to change.
  21773.  
  21774.  
  21775.  
  21776.  
  21777.  310                                              Alphabetic Topical Index
  21778.  
  21779.  
  21780.  
  21781.  
  21782.  
  21783.  
  21784.                                                                P1003.0/D14
  21785.  
  21786.  external environment                   G
  21787.     definition of  ... 8
  21788.                                         GAN  ... 90
  21789.                                         Gap Identification  ... 235
  21790.  F                                      Gaps in Available Standards
  21791.                                             ... 50, 68, 96, 109, 116, 129,
  21792.  Factors in Standards Selection            146, 166, 174, 185, 205, 214
  21793.      ... 30                             General Arrangement  ... 257
  21794.  Fault Avoidance  ... 223               General Normative Elements
  21795.  Fault Detection  ... 222                   ... 258
  21796.  Fault Diagnosis  ... 223               General Purpose POSIX SPs  ... 237
  21797.  Fault Isolation  ... 223               General Service Requirements
  21798.  Fault Management  ... 222                 Application Platform  ... 192
  21799.  Fault Recovery  ... 223                General Terms  ... 7
  21800.  FCC  ... 269                           General  ... 1
  21801.  FIFO  ... 67                           Generalized Input/Output Services
  21802.  File Modification Primitives               ... 59
  21803.      ... 60                             getconf  ... 244
  21804.  File Oriented Services  ... 60         GKS-3D  ... 151, 159, 162, 164
  21805.  File Support Services  ... 61          GKS  ... 131, 147, 151, 153, 159,
  21806.  file system  ... 67-68, 246-247           161-164, 243
  21807.  FIMS  ... 174                          GOSIP  ... 235, 283
  21808.  FIMS  ... 146, 174                     graphical user interface  ... 131
  21809.  find  ... 241                          Graphical Window System Services
  21810.  FIPS 120  ... 163                          ... 131
  21811.  FIPS 127  ... 106, 130                 Graphics Concepts  ... 155
  21812.  FIPS 151-1  ... 66                     Graphics Requirements  ... 157
  21813.  FIPS 158  ... 147                      Graphics Services  ... 149
  21814.  FIPS  ... 108, 146, 234, 243, 245,     Graphics Standards Language
  21815.     260, 278                               Bindings  ... 162
  21816.  Flagger  ... 106                       Graphics Standards  ... 161
  21817.  foreground  ... 182                    grep  ... 241
  21818.  Foreword  ... 258                      Guidance to Profile Writers
  21819.  _f_o_r_k()  ... 10, 67                         ... 230
  21820.  Form Management  ... 173               GUS  ... 289
  21821.  Formal Standards Groups  ... 267
  21822.  FORTRAN-77  ... 243
  21823.  FORTRAN  ... 47                        H
  21824.  Fortran  ... 49
  21825.  FORTRAN  ... 27, 45-48, 106, 239,      Hardware Description Language
  21826.     241                                    (VHDL VHSIC)  ... 117
  21827.  FTAM  ... 71, 81, 91, 95               hardware
  21828.  FTP  ... 91, 96                           definition of  ... 8
  21829.  FULL  ... 263                          harmonization  ... 229
  21830.  Functionality of POSIX.1 Standard      Harmonization  ... 234
  21831.      ... 67                             HCI  ... 1, 131
  21832.                                         HDLC  ... 91
  21833.  
  21834.  
  21835.  
  21836.  
  21837.               Copyright (c) 1991 IEEE.  All rights reserved.
  21838.       This is an unapproved IEEE Standards Draft, subject to change.
  21839.  
  21840.  
  21841.  
  21842.  
  21843.  Alphabetic Topical Index                                              311
  21844.  
  21845.  
  21846.  
  21847.  
  21848.  
  21849.  
  21850.  P1003.0/D14
  21851.  
  21852.  Heterogeneous Environment Support      IEEE P1003.6  ... 71, 213-214
  21853.     Services  ... 106                   IEEE P1003.7  ... 82
  21854.  HFS-HCI  ... 146                       IEEE P1003.8  ... 91
  21855.  High-End Realtime Applications         IEEE P1003.   ... 6
  21856.      ... 247                            IEEE P1003  ... 13
  21857.  HLHSR  ... 164                         IEEE P1076  ... 115, 117
  21858.  HSF-HCI  ... 145                       IEEE P1201.1  ... 146
  21859.  Human/Computer Interaction             IEEE P1201.2  ... 145-146
  21860.     Services API  ... 26                IEEE P1201.   ... 146
  21861.  Human/Computer Interaction             IEEE P1201  ... 168
  21862.     Services  ... 25                    IEEE P1224.1  ... 80
  21863.  Human/Computer Interface               IEEE P1224  ... 91
  21864.     definition of  ... 8                IEEE P1237  ... 91
  21865.                                         IEEE P1238.0  ... 80
  21866.                                         IEEE P1238.1  ... 81, 91, 95
  21867.  I                                      IEEE P1238  ... 91, 95
  21868.                                         IEEE POSIX.2  ... 184
  21869.  IBM  ... 290                           IEEE Std 1003.1  ... 6, 65-66
  21870.  ICL  ... 290                           IEEE Std 1003.3  ... 66
  21871.  ICS  ... 286                           IEEE-488  ... 277
  21872.  ICST  ... 278                          IEEE  ... 6, 13, 53, 145, 159,
  21873.  IEC: International                        183-184, 231, 238-243, 245,
  21874.     Electrotechnical Commission            249, 251, 253, 255, 263, 268,
  21875.      ... 272                               272, 276-278, 286, 291
  21876.  IEEE 1003.11  ... 244                  IEEE Standards Diagram  ... 277
  21877.  IEEE 1003.2  ... 244                   IGES/PDES  ... 169
  21878.  IEEE 1003.4  ... 244                   IGES  ... 115-116, 167, 243
  21879.  IEEE 1003.6  ... 245                   III  ... 36
  21880.  IEEE 802.3  ... 277                    Implementation Aspects  ... 76,
  21881.  IEEE: Institute of Electrical and         101, 123
  21882.     Electronic Engineers  ... 276       implementation defined  ... 5, 68
  21883.  IEEE P1003.10  ... 238, 291               definition of  ... 5
  21884.  IEEE P1003.11  ... 127, 129, 238,      Importance Of Profiles  ... 230
  21885.     245, 291                            Information Interchange Interface
  21886.  IEEE P1003.12  ... 71, 78, 80, 91         definition of  ... 8
  21887.  IEEE P1003.13  ... 238                 Information Interchange Services
  21888.  IEEE P1003.14  ... 238                    API  ... 26
  21889.  IEEE P1003.15  ... 184                 Information Resource Dictionary
  21890.  IEEE P1003.17  ... 80, 82, 91, 95         System (IRDS)  ... 108
  21891.  IEEE P1003.18  ... 238                 Information Services  ... 25
  21892.  IEEE P1003.1  ... 272, 291             Information System Management
  21893.  IEEE P1003.2  ... 6, 291                   ... 215
  21894.  IEEE P1003.3  ... 6, 252, 254-255,     Informative Annexes  ... 260
  21895.     278                                 informative
  21896.  IEEE P1003.4  ... 68, 250, 252,           definition of  ... 6
  21897.     291                                 Initial Graphics Exchange
  21898.  IEEE P1003.4a  ... 68                     Specification (NBSIR 86-3359)
  21899.                                             ... 116
  21900.  
  21901.  
  21902.  
  21903.               Copyright (c) 1991 IEEE.  All rights reserved.
  21904.       This is an unapproved IEEE Standards Draft, subject to change.
  21905.  
  21906.  
  21907.  
  21908.  
  21909.  312                                              Alphabetic Topical Index
  21910.  
  21911.  
  21912.  
  21913.  
  21914.  
  21915.  
  21916.                                                                P1003.0/D14
  21917.  
  21918.  Input Device Management  ... 140,      ISO 10148  ... 91
  21919.     173                                 ISO 10164  ... 91
  21920.  Input Model  ... 156                   ISO 10165  ... 91
  21921.  Input Primitives  ... 156              ISO 1359  ... 44
  21922.  INTAP (Interoperability Technology     ISO 1539  ... 48-49
  21923.     Association for Information         ISO 1989  ... 44, 48-49
  21924.     Processing)  ... 285                ISO 2014  ... 200
  21925.  INTAP  ... 285, 289                    ISO 2022  ... 200
  21926.  Interapplication Entity Services       ISO 3307  ... 200
  21927.      ... 144                            ISO 4031  ... 200-201
  21928.  Interapplication Software Entity       ISO 4217  ... 200-201
  21929.     Services  ... 48, 63                ISO 4873  ... 200-201, 204
  21930.  Interclient Communication  ... 139     ISO 6093  ... 200, 202
  21931.  interface                              ISO 6160  ... 48, 50
  21932.     definition of  ... 8                ISO 6373  ... 48-49
  21933.  International and National             ISO 6429  ... 200, 202
  21934.     Standards Bodies Relationship       ISO 646  ... 200, 202
  21935.      ... 266                            ISO 6522  ... 48, 50
  21936.  International and National             ISO 6936  ... 200, 202
  21937.     Standards Organizations             ISO 6937-1  ... 200, 202
  21938.      ... 267                            ISO 6937-2  ... 200, 202
  21939.  International Standards Bodies         ISO 6937  ... 202
  21940.     Overview  ... 266                   ISO 7185  ... 48-49
  21941.  International Standards  ... 200,      ISO 7350  ... 200, 202
  21942.     204                                 ISO 7498-2  ... 213
  21943.  Internationalization Standards         ISO 7498  ... 262
  21944.      ... 201                            ISO 7776  ... 91
  21945.  Internationalization  ... 185, 189     ISO 7942  ... 159, 163
  21946.  internationalization                   ISO 7-  ... 200, 202
  21947.     definition of  ... 8                ISO 803  ... 91
  21948.  interoperability                       ISO 8072  ... 91, 262
  21949.     definition of  ... 8                ISO 8208  ... 91
  21950.  Interoperable Networking Standards     ISO 8327  ... 91
  21951.      ... 96                             ISO 8348  ... 91
  21952.  Introduction  ... 228, 237, 249,       ISO 8473  ... 91
  21953.     258, 265                            ISO 8485  ... 48
  21954.  IPC  ... 37, 241                       ISO 857  ... 91
  21955.  IPI  ... 159, 165                      ISO 8587  ... 97
  21956.  IPO  ... 169                           ISO 8601  ... 200, 203
  21957.  IPS  ... 73, 80                        ISO 8602  ... 91
  21958.  IRDS  ... 106, 108                     ISO 8613  ... 91, 115, 214
  21959.  ISAM  ... 102                          ISO 8632-1  ... 159
  21960.  ISDN  ... 283                          ISO 8632  ... 115-116, 165
  21961.  ISIS  ... 117                          ISO 8649-2  ... 91
  21962.  ISO 10021  ... 91                      ISO 8650-1  ... 91
  21963.  ISO 10026  ... 91                      ISO 8650  ... 91
  21964.  ISO 10040  ... 91                      ISO 8651-1  ... 163
  21965.  
  21966.  
  21967.  
  21968.  
  21969.               Copyright (c) 1991 IEEE.  All rights reserved.
  21970.       This is an unapproved IEEE Standards Draft, subject to change.
  21971.  
  21972.  
  21973.  
  21974.  
  21975.  Alphabetic Topical Index                                              313
  21976.  
  21977.  
  21978.  
  21979.  
  21980.  
  21981.  
  21982.  P1003.0/D14
  21983.  
  21984.  ISO 8651-2  ... 163                    ISO/IEC 10026-1  ... 127
  21985.  ISO 8652  ... 48, 92                   ISO/IEC 8073  ... 262
  21986.  ISO 8653  ... 92                       ISO/IEC 8613  ... 213
  21987.  ISO 8802-2  ... 91                     ISO/IEC 9804  ... 110
  21988.  ISO 8802-3  ... 91                     ISO/IEC 9805  ... 110
  21989.  ISO 8802-4  ... 92                     ISO/IEC 9899  ... 48-49
  21990.  ISO 8802-5  ... 92                     ISO/IEC 9945-1  ... 2, 64-66, 68,
  21991.  ISO 8805  ... 159, 164                    239, 244, 288, 293
  21992.  ISO 8823  ... 91                       ISO/IEC 9945-2  ... 184
  21993.  ISO 8824  ... 91, 110, 117, 207        ISO/IEC 9945  ... 10
  21994.  ISO 8825  ... 91, 110, 115, 117,       ISO/IEC 9995-  ... 200
  21995.     207                                 ISO/IEC CD 9995-  ... 204
  21996.  ISO 8859-1  ... 2, 192, 205            ISO/IEC DIS 10026-1  ... 128
  21997.  ISO 8859-  ... 200, 203                ISO/IEC DIS 10026-2  ... 128
  21998.  ISO 8879  ... 115, 169                 ISO/IEC DIS 10026-3  ... 128
  21999.  ISO 8907  ... 106-107                  ISO/IEC DIS 10026  ... 130
  22000.  ISO 8-  ... 201                        ISO/IEC DIS 10367  ... 204
  22001.  ISO 9075  ... 106, 130                 ISO/IEC DIS 9804-3  ... 130
  22002.  ISO 9548  ... 91                       ISO/IEC DIS 9805-3  ... 130
  22003.  ISO 9576  ... 91                       ISO/IEC DP 10026-1  ... 119
  22004.  ISO 9579  ... 92                       ISO/IEC DP 9759  ... 106
  22005.  ISO 9592-1  ... 159                    ISP  ... 231
  22006.  ISO 9592-2  ... 159                    Issues Pertaining to Referencing
  22007.  ISO 9592  ... 159, 165                    Base Standards  ... 254
  22008.  ISO 9593-1  ... 159                    ITA  ... 202
  22009.  ISO 9593-3  ... 159                    ITU  ... 266
  22010.  ISO 9593  ... 91
  22011.  ISO 9594  ... 92
  22012.  ISO 9595  ... 92                       J
  22013.  ISO 9596  ... 91-92
  22014.  ISO 9735  ... 92, 115-116              JISC: Japanese Industrial
  22015.  ISO 9945  ... 6                           Standards Committee  ... 272
  22016.  ISO DIS 10641  ... 159                 JISC  ... 272-273
  22017.  ISO DIS 10646  ... 204                 JIS  ... 200, 204
  22018.  ISO DIS 8613  ... 206                  Job Scheduling  ... 220
  22019.  ISO DIS 9592-4  ... 159                JTC1: Joint Technical Committee 1
  22020.  ISO DIS 9636  ... 159                      ... 273
  22021.  ISO DP 10027  ... 106
  22022.  ISO DP 10303  ... 115-116
  22023.  ISO DP 8800  ... 106                   K
  22024.  ISO DP 9579-1  ... 108
  22025.  ISO DP 9579-2  ... 108                 KEYSYM  ... 167
  22026.  ISO: International Organization        KornShell  ... 25, 278, 285, 289,
  22027.     for Standardization  ... 272           293
  22028.  ISO Protocol Stack Standards
  22029.      ... 91
  22030.  ISO/CCITT X.400  ... 118, 213
  22031.  
  22032.  
  22033.  
  22034.  
  22035.               Copyright (c) 1991 IEEE.  All rights reserved.
  22036.       This is an unapproved IEEE Standards Draft, subject to change.
  22037.  
  22038.  
  22039.  
  22040.  
  22041.  314                                              Alphabetic Topical Index
  22042.  
  22043.  
  22044.  
  22045.  
  22046.  
  22047.  
  22048.                                                                P1003.0/D14
  22049.  
  22050.  L                                      MAP  ... 235, 285-286
  22051.                                         MAP/TOP User Group: (Manufacturing
  22052.  language binding  ... 8-9, 21,            Automation Protocol and
  22053.     26-27, 43, 45, 51, 95, 128,            Technical and Office Protocol)
  22054.     132, 135, 137, 150, 152-153,            ... 285
  22055.     158-159, 162-165, 215, 239,         MAP/TOP  ... 285-286, 289
  22056.     241, 244                            may
  22057.  Language Resource Management              definition of  ... 6
  22058.     Services  ... 48                    Memory Management Services  ... 62
  22059.  Language Service Reference Model       Methods for Developing Profiles
  22060.      ... 44                                 ... 235
  22061.  Language Services  ... 43              MHS  ... 118
  22062.  Language Standards  ... 49             Mid-Range Realtime Applications
  22063.  language-binding API                       ... 247
  22064.     definition of  ... 8                MIL-STD-114A  ... 91
  22065.  language-independent service           MIL-STD-1777  ... 91, 96
  22066.     specification                       MIL-STD-1778  ... 91, 96
  22067.     definition of  ... 9                MIL-STD-1780  ... 91, 96
  22068.  LAN  ... 90, 292                       MIL-STD-1781  ... 91, 96
  22069.  LANS  ... 277                          MIL-STD-1782  ... 91, 96
  22070.  LAPB  ... 91                           MIL-STD  ... 78, 96
  22071.  Layering  ... 35                       Miscellaneous Database Services
  22072.  License Services  ... 218                  ... 104
  22073.  LISP  ... 45, 47-48, 50, 164, 243      MITI  ... 273, 285
  22074.  LIS  ... 128, 162                      MIT  ... 159, 166, 168
  22075.  local adaptation                       MOSI  ... 27
  22076.     definition of  ... 9                MS-DOS  ... 205
  22077.  locale                                 Multipart POSIX SPs  ... 256
  22078.     definition of  ... 9                Multiple POSIX OSE APIs to
  22079.  _l_o_c_a_l_e()  ... 200                         Different OSI Layers  ... 80
  22080.  locale  ... 9, 67, 182, 200, 260       Multiprocessing Systems Platform
  22081.  Localization Tools Requirements           Profiles  ... 239
  22082.      ... 199
  22083.  localization
  22084.     definition of  ... 9                N
  22085.  Logical Naming Services  ... 62
  22086.  Low Cost Wide Area Networking          Naming and Directory Services
  22087.      ... 96                                 ... 60
  22088.                                         naming services
  22089.                                            logical  ... 62
  22090.  M                                      National Standards Bodies Overview
  22091.                                             ... 266
  22092.  MAC  ... 212                           National Standards  ... 204-205
  22093.  Main Elements of a Profile             Natural Language Support  ... 197,
  22094.     Definition Document  ... 233           199
  22095.  Maintainability  ... 224               NBSIR 86-3359  ... 115-116, 167
  22096.  make  ... 241                          NBSIR 86  ... 115
  22097.  
  22098.  
  22099.  
  22100.  
  22101.               Copyright (c) 1991 IEEE.  All rights reserved.
  22102.       This is an unapproved IEEE Standards Draft, subject to change.
  22103.  
  22104.  
  22105.  
  22106.  
  22107.  Alphabetic Topical Index                                              315
  22108.  
  22109.  
  22110.  
  22111.  
  22112.  
  22113.  
  22114.  P1003.0/D14
  22115.  
  22116.  NDL Standard Database Language         OLTP  ... 120, 127, 144, 244
  22117.      ... 107                            OMG  ... 287-288
  22118.  NDL  ... 106-108                       Online Disk Management  ... 220
  22119.  Network Application Program            Open Document Architecture
  22120.     Interface (API) Services               (ODA)/Open Document Interchange
  22121.      ... 74                                Format (ODIF)  ... 115
  22122.  Network Configuration Management       Open Issues  ... 51, 118, 148
  22123.      ... 216                            open specifications
  22124.  Network Management Forum  ... 287         definition of  ... 9
  22125.  Network Management Services            Open System Application Program
  22126.      ... 88                                Interface
  22127.  Network Services  ... 73                  definition of  ... 9
  22128.  Networking Standards  ... 92           Open System Environment (OSE)
  22129.  NIST: National Institute of               definition of  ... 9
  22130.     Standards and Technology            open system
  22131.      ... 278                               definition of  ... 9
  22132.  NIST  ... 146, 163, 243, 268, 272,     OSC  ... 64, 69
  22133.     278, 283, 286                       OSE Cross-Category Services
  22134.  NMF  ... 91, 287                           ... 50, 70, 97, 109, 117, 147,
  22135.  Node Internal Communication and           167, 175, 206, 225
  22136.     Synchronization Services            OSF: Open Software Foundation
  22137.      ... 58                                 ... 288
  22138.  Nongovernment Formal Standards         OSF/1  ... 69
  22139.     Organizations  ... 275              OSF/1  ... 69, 183, 185
  22140.  Nontechnical Security Objectives       OSF  ... 64, 69, 183, 185, 288,
  22141.      ... 211                               291
  22142.  Normative Annexes  ... 260             OSI Distributed Transaction
  22143.  Normative References  ... 2, 259          Processing (DTP)  ... 128
  22144.  normative                              OSI  ... 11, 32, 71, 73, 77-82,
  22145.     definition of  ... 6                   89, 94-96, 108, 110, 128-129,
  22146.  NOTE  ... 124                             144, 167-168, 214, 243, 245,
  22147.  NPSC: National Protocol Support           272, 274-275, 278, 283, 285-
  22148.     Center  ... 287                        287, 289
  22149.  NPSC  ... 287                          OSI Network Services Standards
  22150.  NURBS  ... 155                             ... 94
  22151.                                         OSI Reference Model  ... 77
  22152.                                         Other Issues  ... 253
  22153.  O                                      Output Model  ... 157
  22154.                                         Output Primitives  ... 155
  22155.  Object Management Group  ... 287
  22156.  ODA/ODIF  ... 115, 206
  22157.  ODA  ... 115, 206, 213                 P
  22158.  ODASYL  ... 146, 174
  22159.  ODIF  ... 115                          P1003.4  ... 68
  22160.  Office Media Management and            P.10  ... 45
  22161.     Backup/Restore  ... 219             P.5  ... 41
  22162.  OLTP Resource Management Services      Pascal  ... 47, 49-50
  22163.      ... 127
  22164.  
  22165.  
  22166.  
  22167.               Copyright (c) 1991 IEEE.  All rights reserved.
  22168.       This is an unapproved IEEE Standards Draft, subject to change.
  22169.  
  22170.  
  22171.  
  22172.  
  22173.  316                                              Alphabetic Topical Index
  22174.  
  22175.  
  22176.  
  22177.  
  22178.  
  22179.  
  22180.                                                                P1003.0/D14
  22181.  
  22182.  PCI  ... 91                            POSIX Open System Environment
  22183.  PCTE  ... 275, 284                        Standards  ... 29
  22184.  PEP  ... 239                           POSIX OSE Cross-Category Services
  22185.  performance evaluation                     ... 130, 185, 187
  22186.     definition of  ... 10                  definition of  ... 10
  22187.  Performance Management  ... 221        POSIX OSE Reference Model (with
  22188.  performance requirement                   Transaction Processing)
  22189.     definition of  ... 10                   ... 122
  22190.  performance                            POSIX OSE-Based Distributed
  22191.     definition of  ... 10                  Systems  ... 27
  22192.  Petrotechnical Open Software           POSIX Platform Environment Profile
  22193.     Corporation  ... 288                    ... 237
  22194.  PEX  ... 147, 159, 166-167, 243        POSIX SP Procedures and Rules
  22195.  PEX-SI  ... 166                            ... 255
  22196.  PHIGS PLUS  ... 159, 163               POSIX SP Profiling Efforts
  22197.  PHIGS  ... 131, 147, 151, 153,             ... 237
  22198.     159-163, 165-167, 243               POSIX Standardized Profile (POSIX
  22199.  PIK  ... 153, 166                         SP)
  22200.  pipe  ... 67, 157                         definition of  ... 10
  22201.  pipes  ... 67                          POSIX Standardized Profiles In-
  22202.  PL/1  ... 48, 50                          Progress  ... 237
  22203.  PL/1  ... 45, 48, 50, 106, 128,        POSIX.0
  22204.     162, 280                               definition of  ... 13
  22205.  PLP  ... 91                            POSIX.0  ... 10, 13, 253, 277
  22206.  PLUS  ... 159, 163                     POSIX.10  ... 236, 240-244
  22207.  P.O  ... 284, 286                      POSIX.11 POSIX Transaction
  22208.  portability                               Processing  ... 129
  22209.     definition of  ... 10               POSIX.11  ... 121, 128-129, 236,
  22210.  Portable Operating System                 241
  22211.     Interface (POSIX) Part 1            POSIX.13  ... 235, 241, 245-246
  22212.      ... 65                             POSIX.14  ... 236, 239-241
  22213.  POSC  ... 288-289                      POSIX.15  ... 240, 243
  22214.  POSI: Promoting Conference for OSI     POSIX.18  ... 236, 238-239
  22215.      ... 289                            POSIX.1  ... 27, 30-31, 44, 66,
  22216.  POSI  ... 283, 285, 287, 289-290          129, 145, 184, 214, 227-229,
  22217.  POSIX Network Standards Efforts           238, 240, 243-244, 246-247,
  22218.      ... 78                                250, 252, 277-278, 288, 293
  22219.  POSIX Open System Environment -        POSIX.2  ... 6, 43, 97, 145, 183-
  22220.     General Requirements  ... 16           185, 228, 239-240, 243, 252
  22221.  POSIX Open System Environment          POSIX.3  ... 6
  22222.     (POSIX OSE)                         POSIX.4  ... 129, 183, 236, 240,
  22223.     definition of  ... 10                  243, 245-247
  22224.  POSIX Open System Environment          POSIX.5  ... 241
  22225.     Profiles  ... 32                    POSIX.6  ... 241, 243
  22226.  POSIX Open System Environment          POSIX.7  ... 241, 243
  22227.     Reference Model  ... 19             POSIX.8  ... 117, 129, 243
  22228.  POSIX Open System Environment          POSIX.9  ... 241
  22229.     Services  ... 28, 39
  22230.  
  22231.  
  22232.  
  22233.               Copyright (c) 1991 IEEE.  All rights reserved.
  22234.       This is an unapproved IEEE Standards Draft, subject to change.
  22235.  
  22236.  
  22237.  
  22238.  
  22239.  Alphabetic Topical Index                                              317
  22240.  
  22241.  
  22242.  
  22243.  
  22244.  
  22245.  
  22246.  P1003.0/D14
  22247.  
  22248.  POSIX                                  Processor Configuration Management
  22249.     definition of  ... 6                    ... 216
  22250.  POSIX._n                                Profile Concepts  ... 228
  22251.     definition of  ... 13               Profile Objectives  ... 233
  22252.  POSIX-OSE  ... 17                      profile
  22253.  POSIX Database Reference Model            definition of  ... 10
  22254.      ... 101                            Profiles  ... 227
  22255.  POSIX Network Services Model           programming language API  ... 26
  22256.      ... 81                                definition of  ... 11
  22257.  POSIX Networking Reference Model       Prolog  ... 45, 48, 50
  22258.      ... 74                             PROLOG  ... 48
  22259.  POSIX Open System Environment          protocol (OSI)
  22260.      ... 15                                definition of  ... 11
  22261.  POSIX OSE Graphics Service             Public Specifications  ... 69,
  22262.     Reference Model Standards              116, 129, 166, 175, 185, 205
  22263.      ... 160                            public specifications
  22264.  POSIX OSE Graphics Service                definition of  ... 11
  22265.     Reference Model  ... 154            Purpose of Profiles  ... 231
  22266.  POSIX OSE Reference Model -            PVT  ... 163
  22267.     Distributed Systems  ... 28
  22268.  POSIX OSE Reference Model -
  22269.     Entities  ... 22                    R
  22270.  POSIX OSE Reference Model -
  22271.     Interfaces  ... 24                  RACE  ... 290
  22272.  POSIX OSE Reference Model for          RDA  ... 106, 108, 284, 290
  22273.     Command Interfaces  ... 178         Realtime Application Profiles
  22274.  POSIX OSE Reference Model  ... 20          ... 245
  22275.  POSIX OSE Transaction Processing       Realtime Files  ... 61
  22276.     Reference Model  ... 123            Reconfiguration  ... 224
  22277.  POSIX SPs In Progress  ... 238         Redirection  ... 36
  22278.  Preliminary Elements  ... 258          redirection
  22279.  Presentation Management  ... 138,         definition of  ... 11
  22280.     172                                 Reference Model Entities and
  22281.  Prevention of Data Compromise             Elements  ... 21
  22282.      ... 70                             Reference Model Interfaces  ... 24
  22283.  Prevention of Service Denial           Reference Model  ... 43, 53, 73,
  22284.      ... 71                                100, 112, 120, 133, 151, 171,
  22285.  Prevention of Unauthorized Access         177, 191, 210, 216
  22286.      ... 70                             reference model
  22287.  Primitive Attributes  ... 155             definition of  ... 11
  22288.  Principles  ... 255                    Regional Standards  ... 203, 205
  22289.  Print Output and Distribution          regular expression  ... 180
  22290.     Services  ... 218                   Related Organizations  ... 281
  22291.  process ID  ... 67                     Related Service Requirements
  22292.  Process Management Services                ... 174
  22293.      ... 56                             Related Standards  ... 51, 71, 97,
  22294.  process                                   109, 117, 130, 147, 167, 175,
  22295.     definition of  ... 10                  185, 206, 225
  22296.  
  22297.  
  22298.  
  22299.               Copyright (c) 1991 IEEE.  All rights reserved.
  22300.       This is an unapproved IEEE Standards Draft, subject to change.
  22301.  
  22302.  
  22303.  
  22304.  
  22305.  318                                              Alphabetic Topical Index
  22306.  
  22307.  
  22308.  
  22309.  
  22310.  
  22311.  
  22312.                                                                P1003.0/D14
  22313.  
  22314.  Relationship Between the OSI           SC27  ... 274
  22315.     Reference Model and the POSIX       SC28  ... 274
  22316.     OSE Network Reference Model         SC29  ... 169
  22317.      ... 77                             SC2  ... 274
  22318.  Relationship of OSI and POSIX OSE      SC47B  ... 273
  22319.     Network Reference Models            SC4  ... 145-146, 169
  22320.      ... 79                             SC6  ... 274
  22321.  Relationship to Base Standards         SC7  ... 274
  22322.      ... 232                            scaleability
  22323.  Relationships Between This Guide          definition of  ... 11
  22324.     and Profiles  ... 228               SCC  ... 276
  22325.  Remote Data Access (RDA) Protocol      Scope and Number of POSIX SPs
  22326.      ... 108                                ... 254
  22327.  Requirements  ... 259                  Scope  ... 1, 43, 53, 73, 99, 111,
  22328.  Resource Management Services              120, 132, 150, 171, 177, 190,
  22329.      ... 64                                210, 215, 227, 249, 259
  22330.  RFC-1034  ... 91                       Screen Management  ... 140, 173
  22331.  RFT  ... 288                           Security Administration  ... 71
  22332.  RG1  ... 293                           Security Management  ... 225
  22333.  RIG  ... 286, 292                      Security Standards  ... 213
  22334.  Role of POSIX SPs  ... 250             Security  ... 109, 147, 175
  22335.  Routing and Relay Services  ... 90     security
  22336.  RPC Services  ... 85                      definition of  ... 11
  22337.  RPC  ... 84-85, 91, 122, 129, 243,     Selected Major Standards and
  22338.     245                                    Standards-Influencing Bodies
  22339.  RS-232  ... 91                             ... 267
  22340.  Rules for Drafting and                 Selection Precedence  ... 31
  22341.     Presentation of POSIX SPs           Server Connection Management
  22342.      ... 257                                ... 141
  22343.                                         Service Components and Interfaces
  22344.                                             ... 33
  22345.  S                                      service delivery latency
  22346.                                            definition of  ... 11
  22347.  SC11  ... 274                          service request latency
  22348.  SC13  ... 274                             definition of  ... 11
  22349.  SC14  ... 274                          Service Requirements  ... 44, 55,
  22350.  SC15  ... 274                             82, 102, 113, 124, 136, 155,
  22351.  SC17  ... 274                             172, 179, 191, 211, 216
  22352.  SC18  ... 145-146, 169, 274            Services Provided by the
  22353.  SC1  ... 274                              Application Platform at the EEI
  22354.  SC20  ... 274                              ... 90
  22355.  SC21  ... 108, 121, 128, 214, 274      session  ... 63, 91, 144, 199, 217
  22356.  SC22  ... 50, 274                      _s_e_t_l_o_c_a_l_e()  ... 67
  22357.  SC23  ... 274                          SGFS (Special Group on Functional
  22358.  SC24  ... 274                             Standardization)  ... 275
  22359.  SC25  ... 274                          SGFS  ... 231, 275
  22360.  SC26  ... 274                          SGML  ... 115, 169
  22361.  
  22362.  
  22363.  
  22364.  
  22365.               Copyright (c) 1991 IEEE.  All rights reserved.
  22366.       This is an unapproved IEEE Standards Draft, subject to change.
  22367.  
  22368.  
  22369.  
  22370.  
  22371.  Alphabetic Topical Index                                              319
  22372.  
  22373.  
  22374.  
  22375.  
  22376.  
  22377.  
  22378.  P1003.0/D14
  22379.  
  22380.  Shell and Utilities Standards          Standards Infrastructure
  22381.      ... 183                               Description  ... 265
  22382.  shell  ... 43, 148, 177-178, 182-      standards
  22383.     184, 239-240, 243-244                  definition of  ... 12
  22384.  should                                 Status of System Components
  22385.     definition of  ... 6                    ... 224
  22386.  SII                                    STD  ... 213-214
  22387.     definition of  ... 13               STEP  ... 115-116, 169
  22388.  SII  ... 12-13, 33-34, 122-123,        STET  ... 290
  22389.     129                                 Storage/Archiving  ... 157
  22390.  Simple Network Services  ... 85        Structure of Documentation for
  22391.  SIRS  ... 91                              POSIX SPs  ... 255
  22392.  SLA  ... 220                           Subdivision  ... 34
  22393.  SMB  ... 91                            Supercomputing  ... 242
  22394.  SMC  ... 279                           Supplementary Elements  ... 260
  22395.  SMTP  ... 91, 96                       SVID  ... 69
  22396.  SNI  ... 78, 81-82, 91, 95             SVID  ... 64, 69, 183, 185, 263,
  22397.  Software Installation and                 291, 293
  22398.     Distribution  ... 217               System Administration  ... 64
  22399.  Software Safety  ... 223               System Internal Interface (SII)
  22400.  software                                  definition of  ... 12
  22401.     definition of  ... 11               System Operator Services  ... 64
  22402.  SPAG: Standards Promotion and          System Security Services  ... 209
  22403.     Application Group  ... 289          System Services API  ... 25
  22404.  SPAG-CCT  ... 289                         definition of  ... 12
  22405.  SPAG  ... 283, 285, 287, 289-290       System Services Reference Model
  22406.  SPARC  ... 279                             ... 54
  22407.  SPC  ... 279                           System Services Standards  ... 65
  22408.  Special Rules for POSIX SPs            System Services  ... 53
  22409.      ... 251                            system services
  22410.  specification                             definition of  ... 12
  22411.     definition of  ... 11               system software
  22412.  SQL Access Group  ... 290                 definition of  ... 12
  22413.  SQL Standard Database Language         System V  ... 66, 69, 146, 185,
  22414.      ... 106, 130                          263, 291, 293
  22415.  SQL  ... 102, 106-108, 129-130,
  22416.     229, 245, 278, 284, 290
  22417.  SSP  ... 210-211                       T
  22418.  Standard for the Exchange of
  22419.     Product Model Data (STEP)           T1  ... 279
  22420.      ... 116                            T.61  ... 200, 203
  22421.  Standard Generalized Markup            TAG  ... 279
  22422.     Language (SGML)  ... 115            Targeted Realtime Application
  22423.  standardized profile                      Profiles  ... 246
  22424.     definition of  ... 12               Task Management Services  ... 57
  22425.  Standards and Specifications           TBD  ... 269, 287, 289-290, 293
  22426.     outside the POSIX OSE  ... 50       TC130  ... 169
  22427.  
  22428.  
  22429.  
  22430.  
  22431.               Copyright (c) 1991 IEEE.  All rights reserved.
  22432.       This is an unapproved IEEE Standards Draft, subject to change.
  22433.  
  22434.  
  22435.  
  22436.  
  22437.  320                                              Alphabetic Topical Index
  22438.  
  22439.  
  22440.  
  22441.  
  22442.  
  22443.  
  22444.                                                                P1003.0/D14
  22445.  
  22446.  TC159  ... 145-146                     Transaction Processing Standards
  22447.  TC184  ... 169                             ... 128
  22448.  TC22  ... 108, 275                     Transaction Processing  ... 244
  22449.  TC47B  ... 274                         transaction
  22450.  TC83  ... 274                             definition of  ... 12
  22451.  TC86  ... 275                          Types of Access Methods  ... 103
  22452.  TC97  ... 108, 273                     Types of Data Objects  ... 103
  22453.  TCOS-SEC  ... 254                      Types of Database Management
  22454.  TCOS-SSC  ... 249, 263                    Systems  ... 103
  22455.  TCP/IP  ... 73, 78, 82, 90-91,         Types of Profiles  ... 235
  22456.     95-96, 168, 243, 245
  22457.  TCP  ... 91
  22458.  Technical Normative Elements           U
  22459.      ... 259
  22460.  Technical Security Objectives          UCA  ... 283
  22461.      ... 211                            undefined  ... 257
  22462.  TELNET  ... 96                         UniForum  ... 290
  22463.  terminal  ... 12, 58, 66-67, 70,       Universe of Profiles and Standards
  22464.     91, 120, 125, 130-133, 144,             ... 250
  22465.     146, 171-172, 174-175, 182,         UNIX International/UNIX System
  22466.     221, 262, 273                          Laboratories  ... 291
  22467.  Terminology and General                UNIX  ... 47, 66, 96-97, 177,
  22468.     Requirements  ... 5                    183-185, 236, 238, 242, 263,
  22469.  Terminology  ... 5                        284, 291-292
  22470.  terms  ... 7                           Unsatisfied Service Requirements
  22471.  Test Methods  ... 3                        ... 50, 69, 117, 130, 167, 205
  22472.  TFA  ... 91                            unspecified  ... 232
  22473.  Time Services  ... 62                  UPE  ... 183
  22474.  Title  ... 258                         USA  ... 278, 283
  22475.  TM/TPRM  ... 122-124, 129              User Administration  ... 221
  22476.  TOC  ... 1, 5, 15, 39, 187, 227,       User Alliance for Open Systems
  22477.     237, 265, 295                           ... 292
  22478.  Toolkit Window Services  ... 141       User Command Interface Services
  22479.  TOP  ... 235, 286                          ... 177
  22480.  TP0  ... 91                            User Interface EEI Elements
  22481.  TP4  ... 91                                ... 75
  22482.  TPRM  ... 122, 129                     User Interface Management Systems
  22483.  TR 10000  ... 231                         (UIMS)  ... 143
  22484.  Traditional Database Model             user interface  ... 131
  22485.      ... 100                            User Preferences Management
  22486.  transaction application program            ... 140
  22487.     definition of  ... 12               USI-P001  ... 238
  22488.  Transaction Manager API  ... 121       USL  ... 291
  22489.  Transaction Processing Services        USTAR  ... 67
  22490.      ... 119                            UUCP  ... 90, 96-97
  22491.  Transaction Processing Standards
  22492.     Language Bindings  ... 128
  22493.  
  22494.  
  22495.  
  22496.  
  22497.               Copyright (c) 1991 IEEE.  All rights reserved.
  22498.       This is an unapproved IEEE Standards Draft, subject to change.
  22499.  
  22500.  
  22501.  
  22502.  
  22503.  Alphabetic Topical Index                                              321
  22504.  
  22505.  
  22506.  
  22507.  
  22508.  
  22509.  
  22510.  P1003.0/D14
  22511.  
  22512.  V                                      X/PEX  ... 153
  22513.                                         XPG3  ... 69
  22514.  Validation  ... 234                    XPG3  ... 69, 175, 183, 185
  22515.  validation
  22516.     definition of  ... 12
  22517.  VDI  ... 165
  22518.  VHDL  ... 115, 117
  22519.  VHSIC  ... 115, 117
  22520.  VMUIF  ... 146
  22521.  
  22522.  
  22523.  W
  22524.  
  22525.  _w_a_i_t()  ... 67
  22526.  WAN  ... 90
  22527.  WG15  ... 274
  22528.  WG19  ... 145-146
  22529.  WG1  ... 214
  22530.  WG21  ... 50
  22531.  WG3  ... 108
  22532.  WG5  ... 128, 145-146
  22533.  Window Management  ... 137
  22534.  Windowing Reference Model  ... 133
  22535.  Windowing Resource Management
  22536.     Services  ... 144
  22537.  Windowing Standards  ... 145
  22538.  WINDOWS-3  ... 205
  22539.  
  22540.  
  22541.  X
  22542.  
  22543.  X Window System  ... 146
  22544.  X.12  ... 115-116
  22545.  X.212  ... 262
  22546.  X.214  ... 91
  22547.  X.224  ... 91
  22548.  X.25  ... 89, 91, 262
  22549.  X3  ... 279
  22550.  X.400 API Association  ... 292
  22551.  X.400  ... 80, 91, 95-96, 292
  22552.  X.500  ... 82, 91, 95
  22553.  X.509  ... 213
  22554.  XIII  ... 284
  22555.  XLIB  ... 168
  22556.  X/Open TP  ... 129
  22557.  X/Open  ... 293
  22558.  X/Open  ... 69, 91, 95, 129-130,
  22559.     175, 183, 185, 209, 245, 263,
  22560.     291-293
  22561.  
  22562.  
  22563.               Copyright (c) 1991 IEEE.  All rights reserved.
  22564.       This is an unapproved IEEE Standards Draft, subject to change.
  22565.  
  22566.  
  22567.  
  22568.  
  22569.  322                                              Alphabetic Topical Index
  22570.  
  22571.  
  22572.  
  22573.  
  22574.  
  22575.  
  22576.                                                                P1003.0/D14
  22577.  
  22578.                               Acknowledgments
  22579.  
  22580.  We wish to thank the following organizations for donating significant
  22581.  computer, printing, and editing resources to the production of this
  22582.  standard:  the X/Open Company, Ltd.
  22583.  
  22584.  Also we wish to thank the organizations employing the members of the
  22585.  Working Group and the Balloting Group for both covering the expenses
  22586.  related to attending and participating in meetings, and donating the time
  22587.  required both in and out of meetings for this effort.
  22588.  
  22589.  _E_d_i_t_o_r'_s _N_o_t_e:  _T_h_i_s _l_i_s_t _s_h_o_u_l_d _b_e _t_h_e _u_n_i_o_n _o_f _t_h_e _c_o_m_p_a_n_i_e_s _s_p_o_n_s_o_r_i_n_g
  22590.  _W_o_r_k_i_n_g _G_r_o_u_p _a_t_t_e_n_d_e_e_s _a_n_d _B_a_l_l_o_t_i_n_g _G_r_o_u_p _m_e_m_b_e_r_s.  _I_t _w_i_l_l _a_p_p_e_a_r
  22591.  _a_f_t_e_r _b_a_l_l_o_t_i_n_g _b_e_g_i_n_s.
  22592.  
  22593.                     <_t_o _b_e _p_r_o_v_i_d_e_d>   <_t_o _b_e _p_r_o_v_i_d_e_d>
  22594.  
  22595.  In the preceding list, the organizations marked with an asterisk (*) have
  22596.  hosted 1003 Working Group meetings since the group's inception in 1985,
  22597.  providing useful logistical support for the ongoing work of the
  22598.  committees.
  22599.  
  22600.  
  22601.  
  22602.  
  22603.  
  22604.  
  22605.  
  22606.  
  22607.  
  22608.  
  22609.  
  22610.  
  22611.  
  22612.  
  22613.  
  22614.  
  22615.  
  22616.  
  22617.  
  22618.  
  22619.  
  22620.  
  22621.  
  22622.  
  22623.  
  22624.  
  22625.  
  22626.  
  22627.  
  22628.  
  22629.  
  22630.  
  22631.  
  22632.  
  22633.  
  22634.  
  22635.                                                                        323
  22636.  
  22637.  
  22638.  
  22639.  
  22640.  
  22641.  
  22642.  
  22643.  
  22644.  
  22645.  
  22646.  
  22647.  
  22648.  
  22649.  
  22650.  
  22651.  
  22652.  
  22653.  
  22654.  
  22655.  
  22656.  
  22657.  
  22658.  
  22659.  
  22660.  
  22661.  
  22662.  
  22663.  
  22664.  
  22665.  
  22666.  
  22667.  
  22668.  
  22669.  
  22670.  
  22671.  
  22672.  
  22673.  
  22674.  
  22675.  
  22676.  
  22677.  
  22678.  
  22679.  
  22680.  
  22681.  
  22682.  
  22683.  
  22684.  
  22685.  
  22686.  
  22687.  
  22688.  
  22689.  
  22690.  
  22691.  
  22692.  
  22693.  
  22694.  
  22695.  
  22696.  
  22697.  
  22698.  
  22699.  
  22700.  
  22701.  
  22702.  
  22703.  
  22704.  
  22705.